Digital Acorn

プログラムやサーバーの設定など、技術的な記事を載せております。

bash on ubuntu on windows PHP windows プログラミング 環境

【PHP】BoW vs. Docker vs. Win32 環境別速度

投稿日:

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系は速くなってますね。

-bash on ubuntu on windows, PHP, windows, プログラミング, 環境


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

PHP Toolkit のSoapClientが接続できない

クライアントがPHPのバージョンを5.4から5.6にアップデートしたそうです。 (そういう時は前もって連絡ください(怒)) その際、エラーが出るというのです。 ログを見ると、 SoapClientの_ …

【PHP】 Macからの日本語名ファイルを正しく扱う

久しぶりに仕事ではまりました。 ファイルをアップロードして、その日本語名を利用するシステムなのですが、Macも含まれます。 それで、会社からMac miniを借りてダウンロード、アップロード実験をして …

PHP入門講座を公開します

PHPの入門講座を作り始めました。 基礎編が大体出来たので、公開してしまいます。 URLはこちら! https://jw7.org/php_lesson/ 引き続き「活用編」を作って行きます。 ここで …

Google Apps Script でWebAPIを作ろう

Google Apps Scriptを使うと簡単にWeb APIを作ることが出来ます。 準備 まず、Google Drive上からApps Scriptを作れるようにしましょう。 ドライブの左上の「新 …

【PHP】ビルトインウェブサーバーで楽々テスト環境

teratailで質問に答えるようになったら、以外にサーバー立てずにテストして、ローカル制限に引っかかっている人が多いので、簡単に立てられるローカルサーバーの構築方法を書いておこうと思います。 まず、 …

広告