2012-01-29 161 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