カラクリサイクル

『輝かしい青春』なんて失かった人の雑記

空繰再繰をplasxomで構築し直しました

概要: 空繰再繰をplasxomで構築し直した


気付いてる人ははているのかなって感じですが、 この度空繰再繰をplasxomで構築し直しました。

やり始めたのがいつ頃だったかは忘れたんですが、ちまちまとプラグインを書いたり、 テンプレートを移植したりして一通り移行作業が終わってサーバでdeployしたのが金曜日。

で、なんかモッサリでblosxomの時と体感が変わらないよウワーンな感じで、 Devel::NYTProf使って最適化してたのが昨日。

で、ようやく最適化も終わって、キビキビと動作するようになったのが今日というわけです。

いや最初本当にモッサリで、なんで早くならないんだよぅウワーンってなってたんですが、 そこはプログラマなので原因を突き止めて改善、ある程度までは高速に動作するようになりました。 いやーDevel::NYTProf知らなかったらどうなってたことか。

で、最適化の内容としては、

  • インスタンスの生成結果をキャッシュ (plasxom::date)
  • パスの処理結果をキャッシュ (plasxom::entries::blosxom->entry_path)
  • アクセサを使わずにダイレクトにインタンスの保持変数へアクセス
  • インスタンスの生成を抑える (plasxom::plugins->setup内でPath::Class::dir->file使わないようにした)
  • モジュールの読み込みを最適化(スクリプトの最初の方で読み込むようにして、それ以下ではuseしないようにした)

という感じのことをやってました。この辺りの変更については

を見ると大体分かると思います。で、上記の最適化で、大体1~3秒ぐらい早くなりました。

あと高速化でやってることといえば、lastmodifiedプラグインで、 テンプレートの生成結果をキャッシュするようにしてあったりします。 まあ無くても体感は変わらない感じだけど、 リクエストにIF_MODIFIED_SINCEが設定されてない場合とかに早くなるかも。

で、plasxom自体は一通りの機能が完成してるんですが、ドキュメントを用意したりとか、 公式サイトを作ったりというのがまだなので、まあこのBlogでの正式な紹介は先になりそうです。 あとまだAPIとかも微妙にいじったりしてるので、そこら辺完全には安定してないし。

まあでも使えないことはないので、興味があったら

$ git clone git://github.com/nyarla/plasxom.git

してみてください。

ということで今日は空繰再繰をplasxomで再構築したという話でした。