2012-01-29 160 views
1

我需要計算Linux中進程的CPU使用率(用戶模式,系統模式,空閒時間)。 我能夠使用來自/proc/PID/statutimestime值計算用戶和系統模式下的使用情況,但我沒有發現任何與空閒時間有關的數據。Linux中進程的空閒時間

我知道我可以從/proc/stat獲得空閒時間,但是這個值與機器有關,而不是特定的進程。

是否有可能計算知道其進程PID(從/proc目錄中讀取數據)的進程的空閒時間?

+0

CPU的空閒時間是它沒有執行任何(有用)代碼的時間。流程的空閒時間到底是什麼? – gby 2012-01-29 12:44:10

+0

如果我錯了,請糾正我,但我瞭解進程CPU使用率(在用戶和系統模式下)爲0%時的進程空閒時間。 – 2012-01-29 13:10:10

+0

如何計算進程在多個內核上通過多個線程運行的時間? – 2012-01-29 14:56:04

回答

2

我不很瞭解,但也許以下工作:

1) Get the process start up time. Im sure thats possible 
2) Generate time difference (dTime = CurrentTime - TimeProcessStarted) 
3) Substract the time the process is running (dTime - (usageSystemMode + usageUserMode)) 

希望這有助於! :D

+0

我認爲你的解決方案將工作:)使用starttime值可以從/ proc/PID/stat檢索進程啓動時間。謝謝 – 2012-01-29 13:14:03