php nullを判定する「null ===」と「is_null」のパフォーマンスを計測する
phpで、nullを判定する「null ===」と「is_null」のパフォーマンスを計測するサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Stream release 8
- php 8.0.0
- nginx 1.14.1
実行時間計測
microtimeを使用すれば、処理にかかった時間を計測することが可能です。
$startTime = microtime(true);
// 処理を記述
$time = microtime(true) - $startTime; // 処理にかかった時間(ミリ秒)
以下は、「null ===」と「is_null」を使用して、nullを判定してtrueの場合のコードを1000万回実行して、パフォーマンスを計測するサンプルコードとなります。
<?php
// 1000万回実行
define('COUNT', 10000000);
// 計測開始
$startTime = microtime(true);
$var = null;
for ($i = 0; $i < COUNT; ++$i)
{
null === $var;
}
result($startTime,'null');
// 計測開始
$startTime = microtime(true);
for ($i = 0; $i < COUNT; ++$i)
{
is_null($var);
}
result($startTime,'is_null');
function result($time,$str){
echo '測定結果 : ' . $str . PHP_EOL;
// 表示は少数第5桁まで
echo "process time: " . number_format((microtime(true) - $time),5) . ' ミリ秒' . PHP_EOL;
echo PHP_EOL;
}
実行結果
[1回目]
測定結果 : null
process time: 0.53496 ミリ秒
測定結果 : is_null
process time: 0.53500 ミリ秒
[2回目]
測定結果 : null
process time: 0.53471 ミリ秒
測定結果 : is_null
process time: 0.53390 ミリ秒
[3回目]
測定結果 : null
process time: 0.53485 ミリ秒
測定結果 : is_null
process time: 0.53398 ミリ秒
パフォーマンスは、ほほ同じです。
次は、falseを返すパターンを計測してみます。
変数のみを数値に変更して、実行してみます。
$var = 1;
実行結果
[1回目]
測定結果 : null
process time: 0.53498 ミリ秒
測定結果 : is_null
process time: 0.53499 ミリ秒
[2回目]
測定結果 : null
process time: 0.56647 ミリ秒
測定結果 : is_null
process time: 0.56661 ミリ秒
[3回目]
測定結果 : null
process time: 0.53473 ミリ秒
測定結果 : is_null
process time: 0.53515 ミリ秒
falseの時でもパフォーマンスは、ほほ同じです。
-
前の記事
python PySimpleGUIでラジオボタンの文字色や背景色を設定する 2021.11.14
-
次の記事
linux 起動時にコマンドを実行する 2021.11.14
コメントを書く