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

ESC*_*BAR 1 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);
Run Code Online (Sandbox Code Playgroud)

Tat*_*nen 6

您正在计算完整秒数作为time()返回自unix时期以来的秒数.你也不能除以1000得到毫秒,你必须乘以.microtime()改为使用:

$start = microtime(true);

...

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

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