繁体   English   中英

如何使用psutil.get_cpu_percent()?

[英]How to use psutil.get_cpu_percent()?

如何正确使用函数get_cpu_percent()?

我的代码是:

SDKTestSuite.DijSDK_CalculateFps(int(timeForFPS),int(index),cameraName)
cpuUsage = process.get_cpu_percent()

这里我调用一个名为SDKTestSuite.DijSDK_CalculateFps()的函数,我调用get_cpu_percent()来获取此调用的CPU使用率。 我正在为不同的输入调用此函数,结果有时CPU使用0.0% ,这是预期的。

那么我是否以正确的方式使用get_cpu_percent 如何正确使用这个get_cpu_percent函数? 这里是否有任何间隔参数变化?

在这个函数的实际定义中,它只是在给定的时间间隔内休眠并比较CPU时间,但它如何计算我的函数调用?

如果您阅读文档psutil.cpu_percent将:

以百分比形式返回表示当前系统范围CPU利用率的浮点数...当interval为0.0或None时,比较自上次调用或模块导入后经过的系统CPU时间,立即返回...

我很确定这不是你想要的。

首先,如果您想知道特定呼叫期间的CPU使用率,您必须(a)在函数之前和之后调用它,或者(b)从与调用并行运行的另一个线程或进程调用它,以及与呼叫同时(通过interval )。

其次,如果你想知道调用使用多少CPU时间,而不是调用多少以及计算机上每个程序正在使用的其他所有内容,你甚至都没有调用正确的函数,所以没有让它做你想做的事的方式。

psutil中没有任何psutil可以用来做到这一点。 psutil在于它从“外部”角度提供有关系统和程序的信息。 它不知道你运行什么功能。

但是,有一些stdlib附带的东西可以做类似的事情,比如resource.getrusagecProfile模块。 如果不确切地知道你想要完成什么,很难告诉你到底要做什么,但也许如果你阅读那些链接的文档,他们会给你一些想法。

你需要psutil

pip install psutil

然后

import psutil,os
p = psutil.Process(os.getpid())
print(p.cpu_percent())

os.getpid - 这将返回运行此代码的程序的PID。 例如,当您在pythonw.exe上运行它时,它将返回pythonw.exe的PID。 因此p.get_cpu_percent将返回该进程的CPU使用率。

如果你想要系统范围的CPU, psutil.cpu_percent可以完成这项工作。

希望这会有所帮助,干杯!

谢谢大家......我得到了我的查询解决方案。

>>> p = psutil.Process(os.getpid())
>>> # blocking
>>> p.get_cpu_percent(interval=1)
2.0
>>> # non-blocking (percentage since last call)
>>> p.get_cpu_percent(interval=0)
2.9

间隔值非常重要。 最后的调用将为我的实际函数调用提供cpu的百分比用法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM