php double型に変換する「(double)」と「doubleval」のパフォーマンスを計測する
phpで、double型に変換する「(double)」と「doubleval」のパフォーマンスを計測するサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Stream release 8
- php 8.0.0
- nginx 1.14.1
実行時間計測
microtimeを使用すれば、処理にかかった時間を計測することが可能です。
$startTime = microtime(true);
// 処理を記述
$time = microtime(true) - $startTime; // 処理にかかった時間(ミリ秒)
以下は、「(double)」と「doubleval」を使用してdouble型に変換するコードを1億回実行して、パフォーマンスを計測するサンプルコードとなります。
<?php
// 1億回実行
define('COUNT', 100000000);
$str1 = "10.11";
$str2 = "10.11";
// 計測開始
$startTime = microtime(true);
for ($i = 0; $i < COUNT; ++$i)
{
(double)$str1;
}
result($startTime,'(double)');
// 計測開始
$startTime = microtime(true);
for ($i = 0; $i < COUNT; ++$i)
{
doubleval($str2);
}
result($startTime,'doubleval');
function result($time,$str){
echo '測定結果 : ' . $str . PHP_EOL;
// 表示は少数第5桁まで
echo "process time: " . number_format((microtime(true) - $time),5) . ' ミリ秒' . PHP_EOL;
echo PHP_EOL;
}
実行結果
[1回目]
測定結果 : (double)
process time: 8.81420 ミリ秒
測定結果 : doubleval
process time: 8.77099 ミリ
[2回目]
測定結果 : (double)
process time: 8.77742 ミリ秒
測定結果 : doubleval
process time: 8.79156 ミリ秒
[3回目]
測定結果 : (double)
process time: 8.77891 ミリ秒
測定結果 : doubleval
process time: 8.74558 ミリ秒
ほぼ同じですね。
-
前の記事
javascript lodashを使ってエラーチェックを行う 2021.10.26
-
次の記事
TortoiseGitを使って変更を元に戻す 2021.10.26
コメントを書く