gpt4 book ai didi

python - psutil:获取所有进程的cpu

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:19 33 4
gpt4 key购买 nike

也许我忽略了一些东西,但我无法弄清楚如何在不遍历所有进程的情况下一次获取所有进程的 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 列表中,因为帮助说明

When interval is 0.0 or None compares system CPU times elapsed since last call or module import, returning immediately. That means the first time this is called it will return a meaningless 0.0 value which you are supposed to ignore.

最佳答案

为了计算 CPU%,您必须等待。不过,您不必为每个过程/迭代 等待 0.1 秒。相反,遍历所有进程,使用 interval=0 调用 cpu_percent(),忽略返回值,然后等待 0.1 秒(或更多)。第二次迭代所有进程 cpu_percent(interval=0) 将返回一个有意义的值。

关于python - psutil:获取所有进程的cpu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39119119/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com