psutil报告的cpu使用情况与进程H不同

2024-10-01 17:39:23 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我设法为windows编写了一个简单的top实用程序。在

import psutil
import datetime
import time
import shutil
import operator
markedexe=[]
appeared=[]
plst=[]
logfile=open('proc.log', 'a')
logfile.write(str(datetime.datetime.now()).center(90,'-')+'\r\n')
pidmain=psutil.Process().pid
def getproclist():
    for ipls in range(len(plst)):
        if not plst[ipls][2].is_running():
            del plst[ipls]
    for pidi in psutil.pids():
        if pidi > 4 and pidi != pidmain:
            try:
                pss=psutil.Process(pidi)
                pspath=pss.exe()
            except psutil.AccessDenied:
                continue
            except PermissionError:
                continue
            except psutil.NoSuchProcess:
                continue
            if not (pspath in appeared):
                appeared.append(pspath)
                logfile.write('Appeared: "'+pspath+'"\r\n')
            if not (any((pspath,pidi) == pssid[:2] for pssid in plst)):
                plst.append((pspath,pidi,pss))
                ppi=pss.cpu_percent()

#getproclist()
#print(plst)
while(True):
    getproclist()
    cputop=[]
    time.sleep(1)
    for psss in plst:
        try:
            cputop.append((psss[0],psss[1],psss[2].cpu_percent()))
        except psutil.NoSuchProcess:
            continue
    sorted_cputop = sorted(cputop, key=operator.itemgetter(2), reverse=True)
    print('CPUTOP'.center(shutil.get_terminal_size((80, 20))[0], '*'))
    for i in range(min(shutil.get_terminal_size((80, 20))[1]-1, len(sorted_cputop))):
        cpuforthis=str(sorted_cputop[i][2]/psutil.cpu_count())
        pidforthis=str(sorted_cputop[i][1])
        print(sorted_cputop[i][0][(len(cpuforthis)+len(pidforthis)+3)-shutil.get_terminal_size((80, 20))[0]:]+' '+pidforthis+' '+cpuforthis)
        del pidforthis, cpuforthis
    del cputop, sorted_cputop

关于现在的结果。它们不同于套索计划和过程黑客。在过程黑客和过程套索,我的脚本和这两个产品的使用率低于3%。我的脚本说,进程黑客约为0%,套索约为23%(我有一个四核cpu)。当我在两个实例中运行我的脚本时,它说它使用了大约18%。
第一个问题:为什么结果不同?
第二个问题:我应该加一些吗时间。睡觉为了减少cpu的使用?
第三个问题:我应该更信任哪个任务经理?我的还是进程黑客?在


Tags: inimportforlenifcpupsutilsorted

热门问题