3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

foobarAdvent Calendar 2015

Day 19

簡単な再帰処理でPHP7とPHP5.6で速度比較してみる

Last updated at Posted at 2015-12-19

PHP7がリリースされて、速度改善も今回のリリース内容に含まれていますが、、、

実際にどれくらい早くなったのか検証してみようと思います。

検証するプログラム

フィボナッチで簡単な再帰処理をさせてみます。
顕著に違いを出すために、メモ化は未使用の状態で。

fib.php
<?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);
}

まずPHP5.6

php5.6

約33秒ほどかかっていますね。
何回か実行してみましたが、32〜36秒あたりが多くそこらへんは誤差の範囲なんでしょうか。
※なぜか私の環境では速度が異常に遅いようです。(コメント参照)

次にPHP7

php7

約2秒です!!!!
劇的に早くなってますね(/・ω・)/

このプログラムだけで言うとだいたい15-18倍くらいの速度になってます。
まぁ◯倍という数値はこれだけの検証だとアテになりませんが、
私の環境だと異常に遅いようなので、数値は全くアテにならないと思われます。
とりあえず早くなっているというのは明らかですね!

PHP7を取り入れるには色々と弊害がありそうですが、これだけパフォーマンスが良くなるのなら取り入れる価値はありですね。

3
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?