如何计算PHP中的计算持续时间

时间:2011-08-24 08:09:49

标签: php

我有一个素数的计算。现在我想知道PHP需要多长时间进行此计算。我在计算之前和之后都拿了两个微缩胶片并减去它。但结果与我的观察不符。我必须等待两秒钟才能得到结果,但计算结果为0,004 ms。为什么会如此?如何获得真正的持续时间?

 $prim_arr = array();
 $start = time();

 for ($i = 1; $i <= 20000; $i++) {
   $result = NULL;
   for ($x = 2; $x < $i; $x++) {
     if(!($i % $x)){
       $result = $i;
       break;
     }
   }
     if (!$result) $prim_arr[] = $i;             
 }

 $end = time();
 echo (($end - $start)/1000)." ms";

 print_r($prim_arr);

4 个答案:

答案 0 :(得分:6)

您正在计算完整秒数,因为time()返回自unix纪元以来的秒数。你也不能除以1000得到毫秒,你必须乘以。请改用microtime()

$start = microtime(true);

...

$end = microtime(true);
echo ($end - $start).' seconds';
// Or in milliseconds:
echo (($end - $start) * 1000).' ms';

你的例子中发生的事情是你在几秒钟内得到了两次,例如。 13141736571314173661。差异是4秒。然后你将它除以1000并得到0,004“毫秒”,这显然是错误的。乘以1000可得到4000ms的正确结果,但准确度较差。这就是microtime派上用场的地方。

答案 1 :(得分:1)

time()给你几秒钟。为什么你最后把它分成1000。

如果要计算ms,则应乘以1000或使用microtime()

答案 2 :(得分:0)

如果你需要ms的时间,你不应该除以1000,而是乘以。

time()函数以秒为单位返回值。

答案 3 :(得分:0)

time给你几秒钟。尝试microtime(true)将实际微秒视为浮动。