88171.net

Blosxom エントリキャッシュプラグイン

cacheentries

なんだかんだでこのBlosxomには1400超のエントリがあるわけで、これだけのファイルに毎度毎度stat()かけてるとさすがにちょっと重い。特に、試しにabで100並列でアクセスしてみたら悲惨なことになったので、ちょっとどうにかしてみるかと思い立った。

巷にはEntries Cache Pluginというのもあるんだけど、

とか考えると欲しいものとはちょっと違うことがわかったので、車輪の再発明感を覚えつつも自分で書くことにした。

本当に何も凝ったことはせず、デフォの&$entries()から返ってきた[ \%files, \%indexes, \%others ]をStorableでファイルにぶっ込んでおき、一定時間内はそのファイルから読むという、ただそれだけ。ロックもStorableのアドバイザリロック機構をそのまま使ってるので何も考えてない。

これだけなんだけど、チョー適当に計測した感じでは100並列アクセスの所要時間がざっくり半分に、1並列アクセスでもちょっとだけ速くなった。よしよし。

まあそんなアクセスないんだけどな、ここ。