php array_mapの「コールバック関数」と「アロー関数」のパフォーマンスの計測する

phpで、array_mapの「コールバック関数」と「アロー関数」のパフォーマンスの計測するサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- php 8.0.0
- nginx 1.14.1
実行時間計測
microtimeを使用すれば、処理にかかった時間を計測することが可能です。
$startTime = microtime(true);
// 処理を記述
$time = microtime(true) - $startTime; // 処理にかかった時間(ミリ秒)
以下は、array_mapの「コールバック関数」と「アロー関数」のパフォーマンスを計測するサンプルコードとなります。
<?php
// 10万回実行
define('COUNT', 100000);
$arr = [1, 2, 3, 4, 5];
// 計測開始
$startTime = microtime(true);
function calc($x) {
return $x * 2;
}
for ($i = 0; $i < COUNT; ++$i)
{
$arr = array_map('calc', $arr);
}
result($startTime,'コールバック関数');
$arr = [1, 2, 3, 4, 5];
// 計測開始
$startTime = microtime(true);
for ($i = 0; $i < COUNT; ++$i)
{
$arr = array_map(fn ($x) => $x * 2, $arr);
}
result($startTime,'アロー関数');
function result($time,$str){
echo '測定結果 : ' . $str . PHP_EOL;
// 表示は少数第5桁まで
echo "process time: " . number_format((microtime(true) - $time),5) . ' ミリ秒' . PHP_EOL;
echo PHP_EOL;
}
測定結果
[1回目]
測定結果 : コールバック関数
process time: 0.17845 ミリ秒
測定結果 : アロー関数
process time: 0.36702 ミリ秒
[2回目]
測定結果 : コールバック関数
process time: 0.17264 ミリ秒
測定結果 : アロー関数
process time: 0.32932 ミリ秒
[3回目]
測定結果 : コールバック関数
process time: 0.17463 ミリ秒
測定結果 : アロー関数
process time: 0.35005 ミリ秒
当然ですが、コールバック関数の方がパフォーマンスが良いという結果となりました。
-
前の記事
javascript appendChildでノードを最後に追加する 2021.01.08
-
次の記事
C# 文字列の文字を反転させる 2021.01.08
コメントを書く