mod_perlでPerlスクリプトを高速化
去年の終わりからPerlでちょこちょことプログラムを書く事が多いのですが、その関連で以前から気になっていたApacheのmod_perlモジュールをようやく使ってたのでメモ。mod_perlは、Perlインタプリタをメモリ上に常駐させ、さらにコンパイル済みコードもメモリ上にキャッシュすることでCGIスクリプトを高速化するためのものです。
自分が開発環境として使っているCentOS5では、すでにデフォルトでmod_perl2が入っていたので、Apacheのconfファイルをいじるだけでいけました。以下は /foo/bar/hoge.cgi で、mod_perl2を有効化する例です。
<Location /foo/bar/hoge.cgi>
SetHandler perl-script
PerlHandler ModPerl::Registry
Options ExecCGI
PerlSendHeader On
</Location>
注意なのは、PerlSendHeaderをOnにしておかないとHTTPステータスコードを返してくれないこと。まだmod_perl自体のドキュメントを詳しく読んでいなくて、見よう見まねな状態なので、継続して勉強が必要ですね。不明な事も多いし。でも、今作ってるプログラムのボトルネックで困ってた部分にmod_perlを適用したら、いきなり800%ぐらい高速化したのにはびっくりした。速いのなんのって。