我正在使用云托管。 php脚本运行时间因差异垂直比例设置而异:
但我觉得两种情况下的执行时间都不到1秒,因为我的set_time_limit(1)并没有显示超时错误。
可以肯定的是,我使用getrusage()来计算执行时间。在这两种情况下,它们都不到1秒。
这是什么行为?为什么第一个设置执行1s任务需要10秒而不显示超时错误?
<?php
set_time_limit(1);
$rustart = getrusage();
echo date("m/d/Y h:i:s a", time()).'<br>';
//Begin of the task
$a = 0;
for ($i=0; $i<6000000; $i++) {
$a = $a + $i;
if ($i % 1000000 == 0){
echo "$i <br>";
}
}
//End of the task
echo date("m/d/Y H:i:s a", time());
echo '<br>';
function rutime($ru, $rus, $index) {
return ($ru["ru_$index.tv_sec"]*1000 + intval($ru["ru_$index.tv_usec"]/1000))
;
}
$ru = getrusage();
echo "This process used " . rutime($ru, $rustart, "utime") .
" ms for its computations<br>";
echo "It spent " . rutime($ru, $rustart, "stime") .
" ms in system calls<br>";
?>
答案 0 :(得分:1)
对我而言,就像你在运行时错误地计算了某些内容()。
为什么不使用更简单的方法来测量执行时间,如下所示:
$start = microtime(true);
//your stuff here
$end = microtime(true);
$finish = $end - $start;
echo $finish;