自分のバカさ加減にガッカリする

| コメント(0) | トラックバック(0)

関連エントリー。

ってなわけで、開発中の MT4i 3.0 なのですが、「キャッシュ積んだのにあんまし速くなってねーよ、なんでじゃー」とずっと悩んでいたわけです。

はい、その悩みが今さっき解決しました。

まー何、単純な話です。MT4i では スクリプトのほぼ冒頭で

MT->new(hogehoge);

とかやっているわけです。んで、これ冒頭に書いているので、当然 CGI へアクセスする度に毎回呼ばれてました。

画像を縮小して表示する時も。

リダイレクタを表示する時も。

そしてもちろん、キャッシュがヒットした時にも。

必要ないにも関わらず、MT->new していたのです。なので、こいつを必要な時にしか呼ばないようにしてみました。そしたらあんた、めたくそ速くなってしまいましたよ!というお話。

リファクタリング前:
Benchmark: timing 50 iterations of 00.224, 01.30c, 01.30n...
    00.224: 50 wallclock secs ( 0.28 usr +  0.05 sys =  0.33 CPU) @ 152.38/s (n=50)
            (warning: too few iterations for a reliable count)
    01.30c: 55 wallclock secs ( 0.19 usr +  0.01 sys =  0.20 CPU) @ 256.00/s (n=50)
            (warning: too few iterations for a reliable count)
    02.30n: 61 wallclock secs ( 0.16 usr +  0.04 sys =  0.20 CPU) @ 256.00/s (n=50)
            (warning: too few iterations for a reliable count)
リファクタリング後
Benchmark: timing 50 iterations of 00.224, 01.30c, 01.30n...
    00.224: 43 wallclock secs ( 0.28 usr +  0.05 sys =  0.34 CPU) @ 148.84/s (n=50)
            (warning: too few iterations for a reliable count)
    01.30c: 12 wallclock secs ( 0.18 usr +  0.01 sys =  0.19 CPU) @ 266.67/s (n=50)
            (warning: too few iterations for a reliable count)
    02.30n: 48 wallclock secs ( 0.17 usr +  0.02 sys =  0.20 CPU) @ 256.00/s (n=50)
            (warning: too few iterations for a reliable count)

上記は、LWP で単純に MT4i の個別記事ページを50回叩く処理のベンチマークです。「00.224」が version 2.24、「01.30c」が 3.0 のキャッシュ有り、「02.30n」が 3.0 のキャッシュなしです。もうね、リファクタリング前と後で、キャッシュ有りの場合が比較にならないくらい速くなっているのが分かると思います。

苦労してテキストキャッシュを実装した割には結果があまりよろしくなく、「Greg Packer's Publishing でも導入するしかないのか!」などとほぼ一からコーディングしなおすことを考えてモチベーション下がりまくりだったんですが、これでだいぶ持ち直しました。

MT4i 3.0βの公開は近い!…かも。

トラックバック(0)

トラックバックURL: http://www.hazama.nu/mt/mt-tb.cgi/2688

MT4i 3.0 がようやくβリリースです。3.0 で追加される機能の大きな柱は、HTML テンプレートへの対応、テキストキャッシュ機能の搭載、の2つです。 続きを読む

コメントする

月別 アーカイブ

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.12

Follow Me

AD

Flickriver::Most Interesting

tai-tetsu - Flickriver

このブログ記事について

このページは、太鉄が2007年9月13日 19:25に書いたブログ記事です。

ひとつ前のブログ記事は「PukiWiki 用スパム対策済コメントプラグイン/comment_nospam、pcomment_nospam」です。

次のブログ記事は「MT4i version 3.0 β1 をリリースします」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。