小编cur*_*tpi的帖子

psutil:获取所有进程的 CPU

也许我忽略了一些东西,但我无法弄清楚如何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
Run Code Online (Sandbox Code Playgroud)

据我了解,我不能包含cpu-percentattr-list 中,因为帮助说明

当间隔为 0.0 或 None 时,比较自上次调用或模块导入以来经过的系统 CPU 时间,立即返回。这意味着第一次调用它时,它会返回一个你应该忽略的无意义的 0.0 值。

python python-2.7 psutil

2
推荐指数
1
解决办法
2918
查看次数

标签 统计

psutil ×1

python ×1

python-2.7 ×1