這可能是最愚蠢的問題,但我在網上找不到任何關於它的事情,而且我正處於睡眠邊緣的一部分。如何計算Unix中的等待時間? (基於/ usr/bin/time)
無論如何,我假設它必須採取一些措施,包括總耗時/掛鐘時間,以及減去用戶和系統時間。 IE,掛牆時間爲10秒,系統時間爲2,用戶爲1,意味着等待時間爲7秒。
我很想得到一個肯定的答案,而不是用這個基於我的直覺的猜測。
這可能是最愚蠢的問題,但我在網上找不到任何關於它的事情,而且我正處於睡眠邊緣的一部分。如何計算Unix中的等待時間? (基於/ usr/bin/time)
無論如何,我假設它必須採取一些措施,包括總耗時/掛鐘時間,以及減去用戶和系統時間。 IE,掛牆時間爲10秒,系統時間爲2,用戶爲1,意味着等待時間爲7秒。
我很想得到一個肯定的答案,而不是用這個基於我的直覺的猜測。
該公式似乎是exactly as you surmised,與上面提出的警告。
由於/usr/bin/time
測量(根據the documentation),你需要採取的CPU能夠執行代碼,考慮到數量CPU-seconds其用戶和系統處理時間。對於大多數簡單的單線程應用程序,使用一個CPU作爲估計值是合理的。*在這些情況下,可以容忍地使用CPU時間作爲掛鐘時間的替代品。
對於其他人而言,它取決於程序預計達到的最大CPU飽和度,這超出了time
可以告訴您的範圍。
*某些處理器級的特質具有增強的並行性和投機性分支的執行使這個技術上不準確的,但它是否則合理的估計。
感謝您的鏈接和詳盡的解釋! – 2012-03-24 07:10:35
@ LOL.NO。樂意效勞。 :) – MrGomez 2012-03-24 07:11:12
如果多個CPU正在執行代碼,則CPU時間可能會大於已用時間。例如,兩個100%工作1秒的處理器將會經過1秒鐘,2秒鐘的用戶CPU。 – 2012-03-24 06:33:33
我正在使用的實例表明不然。如果是這樣,那麼沒有一個通用的公式嗎?有人告訴我,我可以計算等待時間與牆上的時間。 – 2012-03-24 06:54:09