PHP7とPHP5.6で速度比較をしてみる
こんにちは。開発部まつおかです。
前回の記事「phpenvを使ってPHPのバージョンを簡単に切り替えよう」で少しだけ触れたPHPの最新バージョン、PHP7。今回はPHP7のリリース内容に含まれている「速度改善」がどの程度の改善なのかを少し検証してみようと思います。
検証に使用するプログラム
<?php
$start = microtime(true);
fib(35);
$end = microtime(true);
echo "Start: {$start}\n\n";
echo "End: {$end}\n\n";
$time = $end - $start;
echo "Time: {$time} sec. \n\n";
echo "Fin.\n\n";
function fib($n) {
if ($n === 0) {
return 1;
}
if ($n === 1) {
return 2;
}
return fib($n - 1) + fib($n -2);
}
フィボナッチ数列で簡単な再帰処理をさせてみます。
今回は顕著に違いを出すために、メモ化という方法を用いずにプログラムを書いてみました。
簡単に説明すると、
1. 開始時間を取得
2. 再帰処理を実行
3. 終了時間を取得
4. 実行時間を算出
という流れになります。
では実行していきましょう。
まずはPHP5.6で実行しましょう。
実行結果はこのようになりました。

約33秒ほどかかっていますね。
※本来はこんなに時間はかからないようで、
別の方が実行された時は5秒とかそのくらいでした。
私の環境では何かの要因で非常に遅くなっているようです。
ではPHP7で実行してみましょう。
実行結果はこのようになりました。

おお!約2秒です!!!!
5秒かかっていたものに比べればだいぶ早くなっていますね!
※このプログラムだけ見ると2.5倍ほどの速度になっていますが、
この検証だけでは数値自体はあまりアテにならないと思いますので、
ひとまず「早くなっている」という検証結果は信用できるのかな、と思います。
PHP7を取り入れるには色々と弊害がありそうですが、これだけパフォーマンスが良くなるのなら取り入れる価値はあるかもしれませんね。
まつおか