2004年09月13日 Mon 23:40

MovableType3.0は英語圏向き?

MT3.xのリビルドやエントリの新規作成にかかる時間のことなのですが、(o)氏の
Ogawa::Memoranda http://as-is.net/blog/
MT3でなぜエントリの追加に時間がかかるようになるのか
http://as-is.net/blog/archives/000910.html

を読んで驚きましたが、元々英語圏のモノであったので、
そこまでローカライズしてねーよ、って言われるのかもしれませんが、
(けど、完全でないローカライズなら今までのパッチと同じかも、
もちろん日本語版のMT3.xには、日本語版独自の機能が追加されていますが)。

で、何かと言うと、make_unique_basenameの手続き上の問題で、

make_unique_basenameの処理に関してだけ言えば、
1000個目のエントリを作る際には、1個目を作る際の100万倍の時間がかかります。

って、処理の効率悪すぎ…
(何故こうなるのかは、上記エントリ内に詳しく説明されています)。

*上記内容に間違いがありました、
http://www.tugaa.net/blog/archives/000263.htmlに、訂正したものを記入しております、
ご迷惑をおかけしました事をお詫び申し上げます。

で、解決策として、

これをもし、単純にタイトルやIDや作成時刻などから
unique stringを生成したとすれば、必ずO(1)で済みます。

と提案されているので、メインメニューの設定 > ウェブログの設定で、
以前の形式の個別アーカイブへのリンクをつかう
(個別のアーカイブへのリンクに以前の形式(id)を利用しますか?)
に、チェックを入れれば、とりあえず回避できるのですかね?
(スイマセン、まだ試してません)。

(o)氏より、

アーカイブにどのような形式を採るかに関わらず、エントリを作成するときに basenameはmake_unique_basenameの方式で決められてしまうので回避できません。

と、コメントにてご指摘いただきましたので、上記の方法も無意味である事が分かりました。
(ご指摘ありがとうございます)。

詳しくは上記エントリ内の『よくある質問とその答え』に書かれていますので、
そちらを参考にしてください。

しかし、unique_basenameを使ってエントリを作成すると、IDと違い、
何らかの理由によってデータをインポートし直さなくてはならなくなった時、
IDは変わってしまう場合もあるので、unique_basenameなら恐らく変わらないので、
トラックバックした相手側のエントリのリンク先のこちらのURL(ややこしい)
が変わらないと言う利点もあるので、対応してくれるといいんですがね…。

また、以前こちらでも使わせていただいた、MT3.1の日本語化パッチのエントリ
Movable Type 3.1 and a temporary Japanized patch
http://as-is.net/blog/archives/000906.html

内の「リリースにあたってのコメント」で、
従来の日本語版の日本語化方法についての考えも書かれていますので、
興味のある方は是非ご一読を。

Posted by tugaa | Comments (2) | Category( MovableType )
このエントリのTrackBack URL:

このエントリのPermalink:
  このエントリーをブックマークに追加 
Trackback
Comments

>以前の形式の個別アーカイブへのリンクをつかう
>(個別のアーカイブへのリンクに以前の形式(id)を利用しますか?)
>に、チェックを入れれば、とりあえず回避できるのですかね?

いえ、それは違うのです。アーカイブにどのような形式を採るかに関わらず、エントリを作成するときにbasenameはmake_unique_basenameの方式で決められてしまうのです。ですので回避できません。汚いやり方としては、make_unique_basenameを上書きするプラグインを作るという方法があるにはあります。

Posted by: (o) at 2004年09月14日 00:41

(o)さん、コメント及びご指摘ありがとうございます。

取り急ぎ修正いたします。
それにしても、このmake_unique_basenameは厄介ですね。
Plug-inを作るか、(2バイトコード向けの)修正が無い限り、
この仕様は回避できないのですね…。

Posted by: tugaa at 2004年09月14日 00:58