PHP基准测试中的怪异问题

问题描述 投票:0回答:1

我已经编写了此代码段来测试将字符串转换为整数所花费的时间,我在这里尝试了这个很有趣,但是结果是如此有趣。

<?php
$s = "123456789";
$t = microtime(true);
$data["HI"] = $s;
echo json_encode($data);
$time1 = (microtime(true) - $t);

$t = microtime(true);
$data2["HI"] = $s;
echo json_encode($data2);
$time2 = (microtime(true) - $t);

if($time1 > $time2) {
  echo "yes";
  echo $time1;
  echo $time2;
}

?>

结果

yes
$time1 => 1.2874603271484E-5
$time2 => 3.0994415283203E-6

奇怪的是为什么相同的代码需要更多的时间运行?

php casting benchmarking microtime
1个回答
0
投票

如果将结果转换为普通记法而不是科学记数法,则第二次实际上花费的时间更少...

$time1 => 1.2874603271484E-5    0.000012874603271484
$time2 => 3.0994415283203E-6    0.0000030994415283203

重要的部分是E-5和E-6。

同样如此短的时间测量,在操作系统中可能还会发生其他事情,这意味着定时在一次运行到下一次运行之间可能会有很大的不同。

© www.soinside.com 2019 - 2024. All rights reserved.