旅するえんじにあ - Engineers to Travel -

旅するエンジニアの気まま備忘録

【PHP】 PHP5.4系とPHP7系のパフォーマンスを比較してみた

PHP5.4系とPHP7系のパフォーマンスを比較してみた

11月12日はPHP7のリリース日ですね(予定ですが) ということで、最新のRC版を入れて 今更感ありますが、簡単なパフォーマンステストをしてみました。

PHPのメジャーバージョンアップ自体が10年ぶりとなり 最近何かと話題になっています。しかも実行速度2倍以上になるとか。

さて、早速テストしてみましょう。対象はPHP5.4.42とPHP7.1.0です。

7.0.0RC6とかにしたかったんですが、簡単なパフォーマンステストだし、いっかと。

早速フィボナッチを使ってテストしてみました。

コードは以下の通り。

fibonacci.php

<?php
function fib($n) {
    if ($n < 2) return $n;
    return fib($n - 2) + fib($n - 1);
}

$time_start = microtime(true);
print fib(38);
print "\n";
$time_end = microtime(true) - $time_start;

echo $time_end . " seconds\n";

予想としては30秒くらいで返ってくるんじゃないかと思ったのですが、以外にも以下のような結果となりました。 ※過去に少しやった時バージョン忘れたのですが、そのくらいの結果だったので

[root@localhost ~]# php -v
PHP 5.4.42 (cli) (built: Jun 12 2015 09:40:10) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
1st
39088169
17.16079211235 seconds

2nd
39088169
17.973091840744 seconds

3rd
39088169
17.841723203659 seconds

4th
39088169
19.280640125275 seconds

5th
39088169
17.899519920349 seconds

平均だと 18.02 seconds くらいでしょうか。

ではまったく同じ環境で、PHPを削除し、PHP7.1.0をインストールしてみました。 その状態で全く同じプログラムを動かしてみると。

[root@localhost ~]# php -v
PHP 7.1.0-dev (cli) (built: Nov  4 2015 12:33:34) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2015 Zend Technologies
1st
39088169
6.7832338809967 seconds

2nd
39088169
7.8204309940338 seconds

3rd
39088169
7.7650599479675 seconds

4th
39088169
8.2238001823425 seconds

5th
39088169
7.8330240249634 seconds

平均7.68秒!!!!

2.34倍も早い!

なんてこった・・・

ここまで違いが出るとは思わなかった・・・

PHP7をphalconとか乗せたら体感でもわかるくらい早くなりそうですね!

期待は高まる!

他の言語でも同様にやってみたいなぁと思いつつ。 今ある環境でさくっと試してみた結果でした。