python获取某一进程的CPU使用率的计算方法

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-29 23:11   27   0
_timer = getattr(time, 'monotonic', time.time)
num_cpus = psutil.cpu_count() or 1
def timer():
    return _timer() * num_cpus

pid_cpuinfo = {}
def GetProcessCPU_Pre(id):
    p = psutil.Process(id)
    pt = p.cpu_times()
    st1,pt1_0,pt1_1 = timer(),pt.user,pt.system   # new
    st0,pt0_0,pt0_1 = pid_cpuinfo.get(id,(0,0,0)) # old

    delta_proc = (pt1_0 - pt0_0) + (pt1_1 - pt0_1)
    delta_time = st1 - st0
    try:
        cpus_percent = ((delta_proc / delta_time) * 100)
    except:
        cpus_percent = 0.0

    pid_cpuinfo[id] = [st1,pt1_0,pt1_1]
    return "{:.2f}".format(cpus_percent)

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP