[英]CPU Usage Per Process in Python
我是否可以看到当前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
>>>
使用time.clock()
来获取CPU时间。 要获得CPU使用百分比,请执行CPU时间/经过的时间
例如,如果经过的CPU时间为0.2且经过的时间为1,则CPU使用率为20%。
注意:您必须除以您拥有的处理器数量。 如果你有2即双核:
import decimal,timeit
decimal.getcontext().prec=1000
def torture():
decimal.Decimal(2).sqrt()
time.sleep(0.1)
import time
clock=time.clock()
while 1:
clock=timeit.timeit(torture,number=10)
tclock=time.clock()
print((tclock-clock)*p)
clock=tclock
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.