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

読了まで:約3分


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


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

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

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

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

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

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

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

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

  • <http://github.com/nyarla/plasxom/commit/d5240b5cd7dc45c7296e9756c7e2f351a0538523 http://github.com/nyarla/plasxom/commit/d5240b5cd7dc45c7296e9756c7e2f351a0538523>
  • <http://github.com/nyarla/plasxom/commit/a2223f496d504add7663a359f8dd0903d59a59dc http://github.com/nyarla/plasxom/commit/a2223f496d504add7663a359f8dd0903d59a59dc>
  • <http://github.com/nyarla/plasxom/commit/0d76f246b2f8f02130d856826fc29d9b510ddfa4 http://github.com/nyarla/plasxom/commit/0d76f246b2f8f02130d856826fc29d9b510ddfa4>

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

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

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

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

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

してみてください。

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

#FIXME

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。