PHPが複数環境で実行できるようになったので、速度を測定してみました。
マシンスペックは
| マシン | Lenovo Thinkpad E460 |
|---|---|
| プロセッサ | Core i5-6200U @ 2.40GHz |
| 実装RAM | 16GB |
| OS | Windows 10 Pro |
| PHP | Version 7.1.5 |
PHPを実行する環境は
- Bash on Ubuntu on Windows
- Hyper-Vを利用したDocker for windows
- Win32バイナリ(64bit版)
です。
実行するスクリプトは1000万回、1?100の乱数を足していくだけの簡単なものです。
<?php
$t = microtime(true);
$s = 0;
for ($i = 0; $i < 10000000; $i++) {
$s += mt_rand(1,100);
}
echo $s."\n";
echo microtime(true) - $t;
echo "\n";
結果
では、実際の実行時間を見てみましょう。
| win32 | docker | BoW | |
|---|---|---|---|
| 1回目 | 1.237401009 | 0.886856079 | 0.799245834 |
| 2回目 | 1.277527809 | 0.847378969 | 0.807887077 |
| 3回目 | 1.212148190 | 0.875045061 | 0.790209770 |
| 4回目 | 1.198606014 | 0.855423927 | 0.797501802 |
| 5回目 | 1.223088026 | 0.868628025 | 0.799794912 |
| 6回目 | 1.221951962 | 0.879342079 | 0.803989172 |
| 7回目 | 1.224758863 | 0.877321959 | 0.808245182 |
| 8回目 | 1.223860025 | 0.852982044 | 0.797448874 |
| 9回目 | 1.216402054 | 0.842140913 | 0.791653872 |
| 10回目 | 1.216935158 | 0.849244118 | 0.806570053 |
| 平均 | 1.225267911 | 0.863436317 | 0.800254655 |
ということで、Bash on Ubuntu on Windowsが一番速いという結果になりました。
これにApacheとかが乗ってくると、ちょっと変わると思いますけどね。
開発環境はBoWにしておきましょう。
ちなみに、DockerでPHP 5.6.30のイメージで試してみたところ、1.375秒程度でした。
PHP 7系は速くなってますね。