最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python獲取cpu每秒的使用率

 更新時(shí)間:2022年05月16日 10:44:05   作者:Kaiser?king  
這篇文章主要介紹了使用python獲取cpu每秒的使用率,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

獲取cpu每秒的使用率

要求

請(qǐng)獲取某段時(shí)間的cpu的占有率,以持久化形式保存。

代碼:

import psutil
import time
# cpu_res = psutil.cpu_percent()
# print(cpu_res)
# 每一秒獲取獲取cpu的占有率 --->持久化保存
# 如何將時(shí)間和對(duì)應(yīng)的cpu占有率去匹配
while True:
    # 獲取當(dāng)前時(shí)間和cpu的占有率
    t = time.localtime()
    cpu_time = '%d:%d:%d' % (t.tm_hour, t.tm_min, t.tm_sec)
    cpu_res = psutil.cpu_percent()
    print(cpu_res)
    # 保存在文件中
    with open('cpu.txt', 'a+') as f:
        f.write('%s %s \n' % (cpu_time, cpu_res))
    time.sleep(1)

1.psutil模塊表示獲取本機(jī)的硬件信息

2.psutil.cpu_percent表示獲取cpu的占有率

3.用元組時(shí)間可以準(zhǔn)確獲取自己想獲得的時(shí)、分、秒

4.將時(shí)間——>cpu占有率寫入文件cpu.txt中。

5.time.sleep(1) 表示休眠時(shí)間,等待1秒再執(zhí)行。

輸出結(jié)果:

在這里插入圖片描述

在cpu.txt文件中

在這里插入圖片描述

python充分利用cpu

當(dāng)利用python處理大規(guī)模數(shù)據(jù)或者運(yùn)行一些耗時(shí)較長(zhǎng)的程序時(shí),往往會(huì)發(fā)現(xiàn)程序運(yùn)行時(shí)CPU并沒(méi)有跑滿,哪怕開(kāi)了多線程后CPU利用率仍然不高。

這是因?yàn)樵谀J(rèn)情況下,Python 程序是單個(gè)進(jìn)程,使用單 CPU 核心執(zhí)行,這意味著多核處理器只使用了一個(gè)核。

「一核有難九核圍觀」意味著超過(guò) 50% 的算力都會(huì)被浪費(fèi)。這篇文章將介紹如何解決這種情況。

多線程無(wú)法增加cpu使用率的原因

GIL 的全程為 Global Interpreter Lock ,意即全局解釋器鎖。

在 Python 語(yǔ)言的主流實(shí)現(xiàn) CPython 中,GIL 是一個(gè)貨真價(jià)實(shí)的全局線程鎖,在解釋器解釋執(zhí)行任何 Python 代碼時(shí),都需要先獲得這把鎖才行,在遇到 I/O 操作時(shí)會(huì)釋放這把鎖。

如果是純計(jì)算的程序,沒(méi)有 I/O 操作,解釋器會(huì)每隔 100 次操作就釋放這把鎖,讓別的線程有機(jī)會(huì)執(zhí)行(這個(gè)次數(shù)可以通過(guò) sys.setcheckinterval 來(lái)調(diào)整)。

所以雖然 CPython 的線程庫(kù)直接封裝操作系統(tǒng)的原生線程,但 CPython 進(jìn)程做為一個(gè)整體,同一時(shí)間只會(huì)有一個(gè)獲得了 GIL 的線程在跑,其它的線程都處于等待狀態(tài)等著 GIL 的釋放。

這就意味著哪怕開(kāi)了多線程CPU使用率仍然不會(huì)很高。

如何充分使用多核跑程序

有三個(gè)辦法

1. multiprocessing

multiprocessing 是多進(jìn)程標(biāo)準(zhǔn)庫(kù),讓多進(jìn)程的 python 程序編寫簡(jiǎn)化到類似多線程的程度,通過(guò)多進(jìn)程的方式使用多個(gè)CPU核心。

2. C 語(yǔ)言擴(kuò)展機(jī)制

如果不想用多進(jìn)程這樣重量級(jí)的解決方案,可以改用 C/C++。當(dāng)然,你也不用做的這么絕,只需要把關(guān)鍵部分用 C/C++ 寫成 Python 擴(kuò)展,其它部分還是用 Python 來(lái)寫,讓 Python 的歸 Python,C 的歸 C。一般計(jì)算密集性的程序都會(huì)用 C 代碼編寫并通過(guò)擴(kuò)展的方式集成到 Python 腳本里(如 NumPy 模塊)。這樣在擴(kuò)展里就完全可以用 C 創(chuàng)建原生線程,就可以充分利用 CPU 的計(jì)算資源了。

3. ctypes

不過(guò),寫 Python 擴(kuò)展總是讓人覺(jué)得很復(fù)雜。好在 Python 還有另一種與 C 模塊進(jìn)行互通的機(jī)制 : ctypes。ctypes 與 Python 擴(kuò)展不同,它可以讓 Python 直接調(diào)用任意的 C 動(dòng)態(tài)庫(kù)的導(dǎo)出函數(shù)。你所要做的只是用 ctypes 寫些 python 代碼即可。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python分?jǐn)?shù)實(shí)例用法

    python分?jǐn)?shù)實(shí)例用法

    在本篇文章里小編給大家整理的是一篇關(guān)于python分?jǐn)?shù)實(shí)例用法的相關(guān)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-04-04
  • PyCharm中如何創(chuàng)建帶有注釋的py文件

    PyCharm中如何創(chuàng)建帶有注釋的py文件

    這篇文章主要介紹了 PyCharm中如何創(chuàng)建帶有注釋的py文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-08-08
  • Python pygame實(shí)現(xiàn)圖像基本變換的示例詳解

    Python pygame實(shí)現(xiàn)圖像基本變換的示例詳解

    pygame的transform中封裝了一些基礎(chǔ)的圖像處理函數(shù),這篇文章主要為大家介紹了pygame實(shí)現(xiàn)圖像的基本變換,例如縮放、旋轉(zhuǎn)、鏡像等,感興趣的小伙伴可以了解一下
    2023-11-11
  • pygame實(shí)現(xiàn)非圖片按鈕效果

    pygame實(shí)現(xiàn)非圖片按鈕效果

    這篇文章主要介紹了pygame實(shí)現(xiàn)非圖片按鈕效果,不使用圖片制作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • python中的路徑拼接問(wèn)題

    python中的路徑拼接問(wèn)題

    這篇文章主要介紹了python中的路徑拼接問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • python同步windows和linux文件

    python同步windows和linux文件

    這篇文章主要為大家詳細(xì)介紹了python同步windows和linux文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • python中wx模塊的具體使用方法

    python中wx模塊的具體使用方法

    這篇文章主要介紹了python中wx模塊的具體使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • python生成以及打開(kāi)json、csv和txt文件的實(shí)例

    python生成以及打開(kāi)json、csv和txt文件的實(shí)例

    今天小編就為大家分享一篇python生成以及打開(kāi)json、csv和txt文件的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • Python request post上傳文件常見(jiàn)要點(diǎn)

    Python request post上傳文件常見(jiàn)要點(diǎn)

    這篇文章主要介紹了Python request post上傳文件常見(jiàn)要點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 快速解決pyqt5窗體關(guān)閉后子線程不同時(shí)退出的問(wèn)題

    快速解決pyqt5窗體關(guān)閉后子線程不同時(shí)退出的問(wèn)題

    今天小編就為大家分享一篇快速解決pyqt5窗體關(guān)閉后子線程不同時(shí)退出的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06

最新評(píng)論

乡宁县| 新乡市| 阿鲁科尔沁旗| 翁牛特旗| 兴文县| 深水埗区| 宜丰县| 治县。| 边坝县| 蓬安县| 顺义区| 香河县| 自治县| 贞丰县| 日土县| 和田县| 奇台县| 中超| 灵石县| 阳曲县| 云浮市| 蒲城县| 千阳县| 阿克陶县| 巩留县| 新泰市| 蓬莱市| 秀山| 钦州市| 陇川县| 大城县| 江都市| 柳江县| 和硕县| 叙永县| 文水县| 额尔古纳市| 龙井市| 花莲县| 诸城市| 武城县|