「ionCube PHP Encoder」ベンチマーク

それでは肝心のベンチマークです。

apacheに含まれているabというプログラムを使い、1秒あたりに処理できたリクエスト数(Requests per second)を見てみました。

コマンドは、

ab -n 1000 -c 10 http://〜

とし、5回の平均を取りました。

まずは静的リンクから。

とりあえず最初は phpinfo(); 一行だけのスクリプト
■結果
ノーマル 165.9
エンコード(text) 165.8
エンコード(binary) 165.3

ノーマル、エンコード共にほとんど変わりありませんでした。ちなみに、エンコードには可読文字のみを使用したテキストモードと、不可読文字も使用したバイナリモードがあり、マニュアルによるとバイナリモードの方がパフォーマンスは上だと謳われています。

そこで今度は少し長めのスクリプトで挑戦。70行ほどある自作の暗号化プログラムですが、for文と計算が結構あります。
■結果
ノーマル 261.7
エンコード(text) 281.8
エンコード(binary) 282.1

わずかですが、エンコード済の方が処理速度が上がっているようです。

次はドンと増やして1200行のスクリプト
■結果
ノーマル 47.2
エンコード(text) 66.0
エンコード(binary) 66.5

おー、今度は1.4倍早くなってますねー。やはり長くて複雑なスクリプト程、恩恵を受けられるということでしょうか。

そして不安な動的リンク

phpinfo(); 一行スクリプトでやってみました。
■結果
ノーマル 165.9
エンコード(text) 77.2
エンコード(binary) 77.0

お、遅い(汗)。予想はしてましたが、やはりローダーの読み込みがボトルネックになってますね。あちゃ〜。