いや、世間はすっかりクリスマスだというのに、わたしは、今日も今日とてバナー作りに励んでたわけだが。息抜きにpostgresqlとdbiを調べて、mod_perlで動かすために行儀の良いスクリプトを書いてみた。345行のデータベースからランダムに一行引っ張り出して表示する。データ量も少ないので、純粋にperlを呼び出すところの負荷も見えようというもの。普通にcgiとして呼び出したのと、mod_perlのRegistryと比較してみて腰が抜けたのだ。早いとは聞いてたけどこんなに早いとは思わなかった。最初の一度はどちらも同じなのに、その次からがすげーのひとこと。ブラウザがキャッシュを表示してるだけかと思うほどだ。自宅サーバーのLibretto50のMemory32Mだと、ほとんどなにもしない状態でSWAPしてる状態。cgiでperlが呼ばれるとそのたびに、確実に、新たにswapすることになる。mod_perlはいわばperlインタプリタ内蔵。一度はスクリプトをコンパイルするけどそれ以降はメモリに蓄える。そりゃ早くなるはず...といった理屈以上に早く感じたのはLibretto50の貧相なサーバーだからか。こりゃmod_perl用にcgiを書き換えてみないことには始まらないかも。データを丸読みしてメモリを食いそうなのは、またそこでSwapの心配・対策を考えなきゃいけないんだろうけど。月間30億ページビューとやらの、mixiとかはてながmod_perlというのもわかるような気がする...ってLibretto50サーバーと比べるのは無茶、か。mod_perlでこんなに早くなるのがわかったのは、ちょっと収穫だったなぁ。