2013-05-09 32 views
0

我使用microtime(true)來測量我的PHP代碼運行需要多長時間,並且我得到了奇怪的結果。PHP分析 - 獲取相同代碼段的持續時間非常不同

有時它需要1釐秒,有時需要2,它看起來完全隨機。我一直在做同樣的事情在該代碼(定義一些常量和構建HTML頁面了對象)

  1. 沒有隨機配件
  2. 無人接盤(除文件包括)
  3. 沒有會話訪問權限,沒有數據庫訪問權限,也沒有其他程序,而是同時運行os的程序。

這可能是由於什麼原因造成的? microtime功能有多準確?

+0

你多久一次這樣做?有許多影響可能會改變測量時間。 – 2013-05-09 12:03:50

+0

有太多的理由列出執行時間隨時間略有不同。另外,如果只顯示「釐秒」而沒有小數,則1.9999釐秒和2.0000釐秒之間的差值看起來爲1. – 2013-05-09 12:04:12

+1

如果您的代碼運行時間超過一次(即使計算機處於「空閒」狀態,它也會切換任務),你會得到這種效果,這就是爲什麼你應該運行代碼x次並計算平均值。看看[寧的微基準框架](http://www.ning.com/code/2010/05/php-microbenchmarking/)的一些靈感。 – fvu 2013-05-09 12:05:38

回答

0

確定您使用得當嗎?

microtime()不會返回執行腳本所花費的時間。

下面是php.net計算腳本執行時間的示例。

<?php 
$time_start = microtime(true); 

// Sleep for a while 
usleep(100); 

$time_end = microtime(true); 
$time = $time_end - $time_start; 

echo "Did nothing in $time seconds\n"; 
?> 
+0

是的,我用這種方式。 – Virus721 2013-05-09 12:31:32

相關問題