at posts/single.html

tDiary 高速化パッチを当ててみた

tDiary-devel メーリングリストで、かずひこさんが ヒダイアリー tDiary の高速化パッチを提案されてる。

tDiaryのプロファイルをとってみると、やっぱりeval系でけっこう時間がかかっていて、だったらevalの数を減らせばいいじゃない!と思って追いかけているうちに、1アクセスにつき4回もall_filtersが呼ばれているのに気づきました。

この変更をすれば、Plugin.newが呼ばれる回数が1回だけになって、ruby-1.8、ruby-1.9ともに、60-70%ほど速く!!動くようになりました。これは、先日までのruby-1.8より、この変更をしたruby-1.9の方が1割以上速く動く程度の差です

さっそく、 Ruby1.9.1 で動かしているこの日記でもパッチを適用してみた。 (今はパッチが本体に取り込まれているので、 svn update するだけで適用できる)

ab コマンドでの結果は以下の通り。

$ ab -n3 -c2 http://www.machu.jp/diary/
パラメータ適用前適用後
テスト時間3.69秒2.51秒
スループット0.81req/sec1.19req/sec
リクエスト時間1231msec837msec

処理時間にして、およそ32%短縮されているみたい。 これはいいね。

関連する日記