PHP遅い

2009年2月28日 (土)

このブログの前回記事PHP言語のとおり、私はいまPHP言語でWEBアプリケーションを開発中だ。テスト実行して、実行速度の遅さが気になっている。同じマシンでPython言語のWEBフレームワークで開発したWEBアプリと比べると、実行速度は圧倒的に遅い。遅い原因は次のように考えている。

1.フレームワーク
PHP用WEBアプリフレームワークを使用しているが、そのフレームワークが大きすぎて重いのかもしれない。

2.Windows/IIS
このシステムはWindows上のIISと連携して動いている。本番マシンでもそうなる。通常のPHPによるWEBアプリは、Linux機でApache/mod_php が一般的だが、それと大分異なる構成だ。IIS用のmod_php など聞いたことがないので、PHP部分はCGIとして、つまりアクセスのたびにPHPの起動から行われるので遅いのだろう。

3.static変数
上記「2」とも関連するが、static変数が有効なのは1回のアクセスのみだ。2回目のアクセスではstatic変数は初期化されているので再度設定処理を行わなければならない。このアプリはstatic変数の初期化にかなり重い処理の箇所があるので、それも原因のひとつだ。

4.中間言語
PHPは実行のたびにソースコードを読み込んでコンパイル・実行している。片やPythonではコンパイルされた結果の中間言語が別ファイルで保存されるため、2回目以降はコンパイルされない。このこともPHPが遅い原因だろう。

まあ、サーバ常駐型のPythonフレームワークと比較するのは酷かもしれないが極端に遅いことは事実だ。上記「4」以外にはPHP言語に責任があるわけではないが、もともと好きではないPHP言語にあまり良いイメージが持てないのも事実だ。

とりあえず納品先に、Linux機での実行が可能か否かを検討してもらう必要があるだろう。Linux機でApache/mod_phpならもう少しは速くなることが期待できるからだ。

 

QLOOK ANALYTICS