如何准确地使用函数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时间,但是它如何计算这里的功能调用呢?
发布于 2014-01-16 05:38:22
谢谢大家..。我找到了我的查询的解决方案。
>>> 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在实际函数调用中所占的百分比。
发布于 2014-01-13 11:59:19
如果您阅读医生们,psutil.cpu_percent将:
返回一个浮点,表示当前系统范围内CPU利用率的百分比…。当间隔为0.0或None时,比较上次调用或模块导入后运行的系统CPU时间,立即返回…
我很确定这不是你想要的。
首先,如果您想知道特定调用期间的CPU使用情况,您必须(a)在函数之前和之后调用它,或者(b)从与调用并行运行的另一个线程或进程调用它,并同时调用(通过传递一个interval)。
第二,如果你想知道调用所用的CPU时间,而不是你的计算机上的每一个程序所使用的CPU时间,那么你甚至没有调用正确的函数,所以没有办法让它做你想做的事情。
而在psutil中,没有任何东西能够做到这一点。psutil的全部意义在于它从“外部”的角度提供有关您的系统和程序的信息。它不知道什么时候你运行了什么功能。
但是,stdlib也有这样的功能,比如resource.getrusage或cProfile模块。在不知道你想要完成什么的情况下,很难确切地告诉你该做什么,但是也许如果你读了那些链接的文档,他们会给你一些想法。
发布于 2017-01-22 08:38:37
你需要psutil
pip install psutil然后
import psutil,os
p = psutil.Process(os.getpid())
print(p.cpu_percent())https://stackoverflow.com/questions/21090379
复制相似问题