 |

|
徹底比較!! 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:115KB)において目標としていたオブジェクト指向機能の強化と引き換えにパフォーマンスを犠牲にしたわけですが、この選択によってPHP5は再利用性や拡張性、堅牢なアーキテクチャの実現方法を手に入れました。
パフォーマンスの悪化は各種パッケージ製品(※1)、マシンのスペックアップ、キャッシュの技術などによって補うことが可能ですが、オブジェクト指向機能を補うことは困難です。それを考慮すると多少のパフォーマンスを犠牲にしてでもオブジェクト指向機能を強化したPHP開発コミュニティの選択は正解だったといえるのではないでしょうか。
第5回では、PHP4とJavaで比較したオブジェクト指向について、PHP5で比較してみます。パフォーマンスよりもオブジェクト指向を重視した感のあるPHP5は、どこまでJavaに迫れるでしょうか。
|
※1 PHPのパフォーマンスを改善するための製品は多数あります。本連載の第2回「PHP4とJavaのパフォーマンス比較」に掲載した「PHPの動作環境を高速化するための製品群」をご覧ください。
|
 |
前のページ 1 2
|

|
|

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