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

PHP4とJavaのパフォーマンス比較
徹底比較!! PHP & Java

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

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

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

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


5000までの素数をWebブラウザーに表示するプログラムの実行速度
 PHP4Java(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のパフォーマンス比較」で登場した「データベースへの接続を繰り返すプログラム」について実行速度を検証してみました。

データベースへの接続を繰り返すプログラムの実行速度
 PHP4JavaPHP5
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文発行コネクション解放
 PHP4JavaPHP5PHP4JavaPHP5PHP4JavaPHP5
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のパフォーマンス
徹底比較!!PHP&Java
第1回企業システムにおいて伸び悩むPHP4
第2回PHP4とJavaのパフォーマンス比較
第3回PHP4とJavaのオブジェクト指向
第4回PHP5の登場、PHP5とJavaのパフォーマンス比較
第5回PHP5のオブジェクト指向
第6回企業システムにおけるPHP5の可能性
関連記事 : 徹底比較!! PHP & Java 〜 フレームワーク編
第1回Strutsはわかるけど、Mojaviってなんだ?
第2回StrutsとMojaviのしくみを見てみよう
第3回Strutsにおける基本中のキホン
第4回Mojaviにおける基本中のキホン
第5回Strutsで機能を実装してみよう
第6回Mojaviで機能を実装してみよう
第7回StrutsとMojaviの今、そして未来

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored