ただのにっき
2001-12-27(木) 10142歩 [長年日記]
■ 散財自慢
年末最後のバトルが繰り広げられている散財自慢だが、白状しなければならないことがある。このシステム、年を越せないのである。越せないわけじゃない(たぶん新年のデータはちゃんと入力できると思う)。前年以前のデータが見られないのである。だから、がんばって大晦日に散財しても、勝利に浸っていられるのはほんのわずかの間だけ。
それじゃぁあんまりだ、と思うので、年越し対応をしようと思っていたんだが、けっこう忙しいのとモチベーションがいまいち高まらないので(だって年間王者は某石油王の息子で決まりだしさ)、しばらくこのままで行っちゃうことにした。年が明けたら、新しい気持ちで散財に励んでください(笑)。
■ 続・tDiaryは重いか
重いったら重いよ。もぅ、1.3系ったら重くてしょうがないよ(←自分で作っておいて何を言うか)。
どれくらい重いか見てみようと思って、Ruby付属のプロファイラを使ってみた。最初は漠然と「I/Oがけっこう食ってるんじゃないのー」と思っていたのだが、ぜんぜん違った。通算50%近くの時間を食っていたのは、ERbCompiler#compile
だった。あぁ〜、そりゃそうだ〜。
なにせ、ページの外枠、日記本文、プラグイン適用と、都合3回もERbを通しているのだ。重くて当たり前である。こりゃなんとかせにゃあかんかなー、と思ったのだが、なかなかいい解決策は思いつかない。
一番いいのはキャッシュだろう。リンク元表示をプラグイン化してしまえば、前の二段階まではほとんど変化がないので、最新表示だけでもあらかじめrhtml化しておけば、最後のプラグイン適用だけで済む。キャッシュの更新は、本文の更新時かツッコミがあった時だけ。これはやる価値があるかも。
キャッシュの応用として、ERbのメソッド化機能を使う手もある。でもメソッド化したらどっかにとっておかなきゃいけないので、mod_rubyを前提にしたり、dRubyを動かしたりしないといけない。これはちょっと仰々しすぎるな。
それから、ERbをやめてerubyを使うという方法もある。もっとも、比べてみたことがないので、erubyの方がどれくらい速いのかはわからない。そもそもAPIが違うから、そんな簡単な問題ではない。
一番楽なのは、ムーアの法則様にお願いすることだな。これなら何もしなくてもいいんだけど。お願い、ムーア様。なんとかして。