TOP比較データ> PHP5のパフォーマンス
PHP4とJavaのパフォーマンス比較
徹底比較!! PHP & Java

第4回:
PHP5の登場、PHP5とJavaのパフォーマンス比較

著者:ワイズノット  土橋 芳孝   2004/12/10
前のページ  1  2
PHP5のパフォーマンス

   これよりPHP5のパフォーマンスを検証していきます。動作環境は下記のとおりです。
動作環境
OS Windows XP Professional
CPU Pentium M 1.10GHz
メモリ 512MB
PHP PHP5.0.2 + Apache2.0.50
Zend Optimizer2.5.5
Java JDK1.4.2 + Tomcat4.1.30

   まずは、本連載の第2回「PHP4とJavaのパフォーマンス比較」で登場した「5000までの素数を表示するプログラム」によってPHP5における演算処理の実行速度を検証してみました。


5000までの素数をWebブラウザーに表示するプログラムの実行速度
  PHP4 Java(JSP) PHP5
1回目 14.69秒 0.46秒 17.38秒
2回目 14.71秒 0.46秒 17.30秒
3回目 14.71秒 0.45秒 17.34秒
4回目 14.71秒 0.45秒 17.32秒
5回目 14.70秒 0.46秒 17.34秒
平均 14.70秒 0.46秒 17.34秒

5000までの素数を画面に表示するプログラムの実行速度
  PHP4バッチ Javaバッチ PHP5バッチ
1回目 14.79秒 0.50秒 17.27秒
2回目 14.87秒 0.49秒 17.28秒
3回目 14.80秒 0.50秒 17.29秒
4回目 14.78秒 0.49秒 17.26秒
5回目 14.77秒 0.51秒 17.26秒
平均 14.80秒 0.50秒 17.27秒

   結果は以上のとおりです。PHP5の演算処理はJavaと比較してWebアプリケーションで約38分の1、バッチ処理で約35分の1の実行速度しかないという結果となりました。また、PHP5はPHP4と比較しても演算処理において15%ほど実行速度が低下しています。

   続いて本連載第2回「PHP4とJavaのパフォーマンス比較」で登場した「データベースへの接続を繰り返すプログラム」について実行速度を検証してみました。

データベースへの接続を繰り返すプログラムの実行速度
  PHP4 Java PHP5
1回目 16.49秒 7.94秒 18.64秒
2回目 16.33秒 6.64秒 18.11秒
3回目 16.68秒 6.47秒 17.96秒
4回目 16.57秒 6.46秒 18.09秒
5回目 16.45秒 6.47秒 17.92秒
平均 16.50秒 6.80秒 18.14秒
  コネクション取得 Select文発行 コネクション解放
  PHP4 Java PHP5 PHP4 Java PHP5 PHP4 Java PHP5
1回目 11.12秒 1.90秒 12.65秒 5.03秒 3.76秒 5.41秒 0.24秒 2.28秒 0.39秒
2回目 11.01秒 1.09秒 12.38秒 4.99秒 3.37秒 5.26秒 0.23秒 2.15秒 0.37秒
3回目 11.36秒 1.09秒 12.30秒 4.97秒 3.42秒 5.19秒 0.25秒 1.94秒 0.38秒
4回目 11.23秒 1.22秒 12.37秒 5.00秒 3.22秒 5.23秒 0.24秒 2.02秒 0.38秒
5回目 11.11秒 1.15秒 12.26秒 5.00秒 3.34秒 5.18秒 0.24秒 1.97秒 0.36秒
平均 11.17秒 1.29秒 12.40秒 5.00秒 3.42秒 5.25秒 0.24秒 2.07秒 0.38秒

   以上のとおり、PHP5のデータベース接続処理はJavaと比較して2分の1以下の実行速度しかないという結果となりました。また、PHP5はPHP4と比較してもデータベース接続処理において10%近く実行速度を低下させています。

   PHP5はPHP4と比較して10%〜15%実行速度を低下させていますが、この原因として考えられるのは、やはりオブジェクト指向機能の大幅な強化にあると筆者は考えています。

   PHP5は、当初「Zend Engine version 2.0: Feature Overview and Design」pdf(PDF:115KB)において目標としていたオブジェクト指向機能の強化と引き換えにパフォーマンスを犠牲にしたわけですが、この選択によってPHP5は再利用性や拡張性、堅牢なアーキテクチャの実現方法を手に入れました。

   パフォーマンスの悪化は各種パッケージ製品
(※1)、マシンのスペックアップ、キャッシュの技術などによって補うことが可能ですが、オブジェクト指向機能を補うことは困難です。それを考慮すると多少のパフォーマンスを犠牲にしてでもオブジェクト指向機能を強化したPHP開発コミュニティの選択は正解だったといえるのではないでしょうか。

   第5回では、PHP4とJavaで比較したオブジェクト指向について、PHP5で比較してみます。パフォーマンスよりもオブジェクト指向を重視した感のあるPHP5は、どこまでJavaに迫れるでしょうか。

※1 PHPのパフォーマンスを改善するための製品は多数あります。本連載の第2回「PHP4とJavaのパフォーマンス比較」に掲載した「PHPの動作環境を高速化するための製品群」をご覧ください。
前のページ  1  2


ワイズノット
著者プロフィール
株式会社ワイズノット  土橋 芳孝
以前はJavaを利用したWebアプリケーション開発とオブジェクト指向設計を得意としていたが、ワイズノットに入社以来、PHPの魅力にとりつかれる。現在はワイズノットのプロジェクトマネージャーとして、PHPをはじめとしたオープンソースの普及に力を注いでいる。


INDEX
第4回:PHP5の登場、PHP5とJavaのパフォーマンス比較
  PHP5の登場
PHP5のパフォーマンス