SummerWind

Web, Photography, Space Development

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%ぐらい高速化したのにはびっくりした。速いのなんのって。

Moto Ishizawa

Moto Ishizawa
ソフトウェアエンジニア。ロケットの打上げを見学するために、たびたびフロリダや種子島にでかけるなど、宇宙開発分野のファンでもある。