2015-06-21 17 views
4

雖然試圖比較PHP中的算法運行時間,但我遇到了microtime()函數。但我認爲,我有一些基本的理解錯誤。兩個microtime(true)調用的區別以秒爲單位返回結果,對吧?然後考慮這個極其簡單的腳本:microtime(true) - 麻煩測量PHP腳本執行時間

$t1 = microtime(true); 
//do nothing 
$t2 = microtime(true); 

echo ($t2 - $t1); 

當我運行此腳本幾次,我得到的值1.19秒和3.5秒之間變化。這顯然是錯誤的,因爲頁面重新加載是即時的,腳本絕對沒有任何事情可做。

我在做什麼錯?

+0

這個問題可能很快就會被重複關閉。如果來自重複項目的答案沒有完全解決您的問題,請對其進行編輯以包括原因並將其標記爲重新打開。謝謝! [看這裏](http://stackoverflow.com/questions/6245971/accurate-way-to-measure-execution-times-of-php-scripts) –

+0

@RohitGupta好吧,但我篩選了許多類似的答案。我的觀點是爲什麼腳本無需任何操作需要1-3秒。 – dotslash

+0

[在PHP中跟蹤腳本執行時間]可能的重複(http://stackoverflow.com/questions/535020/tracking-the-script-execution-time-in-php) – Achrome

回答

1

計算(與參數get_as_float爲真)會給你的結果在幾秒鐘內,根據PHP文件。

默認情況下,microtime()以「msec sec」的形式返回一個字符串,其中sec是自Unix時代(格林威治標準時間1970年1月1日0:00:00)開始的秒數,msec測量微秒從秒開始已經過去並且也以秒錶示。

如果get_as_float設置爲TRUE,則microtime()返回一個float值,它表示自Unix時期以來的當前時間,精確到最近的微秒。

對於全文請參考這裏http://php.net/manual/en/function.microtime.php

最重要的是你的操作系統是做很多事情之間頂部。

+0

嗯。 。 。我挖出了很多官方文檔,但從未想過操作系統的角度。這是否意味着我無法準確估計代碼段的運行時間?在我看來,根據操作系統的不同,例如,選擇排序可能會比快速排序更有效!你同意嗎? – dotslash

+0

n-dru是對的,你是在誤讀它。 –

+0

他的答案現在被刪除了,但他寫了毫秒,這在文檔中找不到。無論如何。 。 。 – dotslash