我是否可以看到当前python应用程序使用的处理器使用量(最大值的百分比)?
场景:我的主机允许我运行我的应用程序,只要它不消耗超过X%的CPU功率,所以我希望它"关注自己"并放慢速度.那么我怎么知道应用程序使用了多少CPU?
目标平台是*nix,但是我想在Win主机上也这样做.
>>> import os >>> os.times() (1.296875, 0.765625, 0.0, 0.0, 0.0) >>> print os.times.__doc__ times() -> (utime, stime, cutime, cstime, elapsed_time) Return a tuple of floating point numbers indicating process times.
从(2.5)手册:
次()
返回一个5元组的浮点数,表示累计(处理器或其他)时间,以秒为单位.这些项目包括:用户时间,系统时间,孩子的用户时间,孩子的系统时间,以及自上一个固定点以来经过的实际时间.请参阅Unix手册页时间(2)或相应的Windows Platform API文档.可用性:Macintosh,Unix,Windows.
通过使用psutil:
>>> import psutil >>> p = psutil.Process() >>> p.cpu_times() cputimes(user=0.06, system=0.03) >>> p.cpu_percent(interval=1) 0.0 >>>
该resource
模块提供了getrusage
可以为您提供所需信息的模块,至少对于类Unix平台而言.
请注意,CPU使用率百分比始终是在一段时间内测量的.从本质上讲,它是程序执行某些操作所花费的时间除以间隔时间.
例如,如果您的应用程序在5秒的时间内占用2秒的CPU时间,那么可以说它占用了40%的CPU.
请注意,使用多处理器系统时,这种计算看似简单,可能会变得棘手.如果您的应用程序在双处理器系统上在5秒的挂钟时间内使用7秒的CPU时间,您说它是使用140%还是70%的CPU?
更新:正如gimel所提到的,该os.times
功能还以独立于平台的方式提供此信息.当然,上述计算说明仍然适用.