也许我忽略了一些东西,但我无法弄清楚如何current_process.cpu_percent(interval=0.1)
在不迭代它们的情况下一次获取所有进程。目前迭代需要process_count * interval
几秒钟才能完成。有没有解决的办法?
到目前为止,我正在做:
#!/usr/bin/env python2
import psutil
cpu_count = psutil.cpu_count()
processes_info = []
for proc in psutil.process_iter():
try:
pinfo = proc.as_dict(attrs=['pid', 'username', 'memory_info', 'cpu_percent', 'name'])
current_process = psutil.Process(pid=pinfo['pid'])
pinfo["cpu_info"] = current_process.cpu_percent(interval=0.1)
processes_info.append(pinfo)
except psutil.NoSuchProcess:
pass
print processes_info
据我了解,我不能包含cpu-percent
在attr
-list 中,因为帮助说明
当间隔为 0.0 或 None 时,比较自上次调用或模块导入以来经过的系统 CPU 时间,立即返回。这意味着第一次调用它会返回一个无意义的 0.0 值,你应该忽略它。