PHPとnodejsの処理速度 どちらが速いのか比較する

私は普段PHPを触っていますが、nodejsの方が処理速度が速いのではないかと感じたため、処理速度を比較してみようと思います。

結果だけ確認したい方は、こちらをどうぞ。(スクロールします)

 

 

比較方法

if文で比較し、echo(console.log)をする処理を

for文で100万回実行した平均実行時間で比較を行います。

PHPのバージョンは、7.3.6

nodejsのバージョンは、8.16.1

 

比較は、2つの方法を使用します。

apacheサーバ(PHP)、expressサーバ(nodejs)でwebページ上に表示される速度。

コンソール上からphpコマンド、nodeコマンドを使用し、実行した速度。

 

サーバから返される速度を比較

PHP

xamppを使用し、以下のコードで結果を取得します。

<?php
$count = 1000000;
for($i = 0; $i < $count; $i++){
	$time_start = microtime(true);
		if("test" == "test"){
			echo "test";
		}
	$results[] =  microtime(true) - $time_start;
}
echo "<br>";
echo (array_sum($results) / $count) * 10000;

 

実行結果は、

0.0027450633049011 ms

 

nodejs

こちらは、「127.0.0.1:3000」で動作します。

const express = require('express')
const app = express()
function speedTest() {
     var start = new Date();
     var hrstart = process.hrtime();
     if("test" == "test"){
       console.log("test");
     }
     var end = new Date() - start;
     hrend = process.hrtime(hrstart);
     return hrend[1] / 1000000;
}
var count = 1000000;
var results = 0;
app.get('/', function(req, res){
  for (var i=0; i<count; i++){
    results += speedTest();
  }
  var test = results / count;
  res.json(test);
});

app.listen(3000)

 

実行結果は、

0.033410115841632046 ms

 

コンソールからの実行速度を比較

PHP

こちらは、同じコードです。

<?php
$count = 1000000;
for($i = 0; $i < $count; $i++){
	$time_start = microtime(true);
		if("test" == "test"){
			echo "test";
		}
	$results[] =  microtime(true) - $time_start;
}
echo "<br>";
echo (array_sum($results) / $count) * 10000;

 

実行結果は、

0.42082943439484 ms

 

nodejs

var count = 1000000;
var results = 0;

function speedTest() {
     var start = new Date();
     var hrstart = process.hrtime();
     if("test" == "test"){
        console.log("test");
     }
     var end = new Date() - start;
     hrend = process.hrtime(hrstart);
     return hrend[1] / 1000000;
}

for (var i=0; i<count; i++){
  results += speedTest();
}
console.log(results / count);

 

実行結果は、

0.03616859515860955 ms

 

 

結果

サーバ

PHP 0.0027450633049011 ms

nodejs 0.033410115841632046 ms

コンソール

PHP 0.42082943439484 ms

nodejs 0.03616859515860955 ms

 

コンソール上からコマンドを叩いて実行すると、nodejsの方が10倍ほど速いですが、

サーバに表示される速度だとPHPの方が10倍ほど速いようです。

 

コメントを残す

CAPTCHA