PersistentPerl
Perlスクリプトは、ユーザーからリクエストがある度に
Perlプロセスの生成
Perlスクリプトの文法解釈
スクリプトのコンパイル
コンパイルされたバイトコードの実行
プロセスの破棄
が行われる。大量のリクエストがあればその分だけ繰りかえされ、この事がパフォーマンスの悪化に繋がっている。
PersistentPerlはPerlスクリプトの実行を
リクエストの受付
(リクエストを受けられるバックエンドプロセスがいなければ)バックエンドプロセスの生成
UNIXドメインソケットを使ったバックエンドプロセスとのデータ受け渡し
を行うフロントエンドプロセスと(つまりフロントエンドプロセスはPerlに関わらない)
初回のみPerlスクリプトをコンパイルし、バイトコードを保持したままプロセスとして残る
フロントエンドからのリクエストに従ってコンパイル済みバイトコードを実行
を行うバックエンドプロセスの2つに分けることで2回目以降のスクリプトの文法解釈とコンパイルにかかる時間をカットし結果としてプログラム起動速度の向上およびサーバ負荷の低下が可能となる。