簡體   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