欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python獲取某一進(jìn)程的CPU利用率的方法詳解

 更新時(shí)間:2024年02月27日 10:03:48   作者:水花花花花花  
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)獲取某一進(jìn)程的CPU利用率,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

一、運(yùn)行代碼

import time
import psutil
 
_time = getattr(time, 'monotonic', time.time)
sum_cpus = psutil.cpu_count() or 1 #計(jì)算機(jī)的CPU核心數(shù)量,如果無(wú)法獲取,則將核心數(shù)設(shè)置為1
 
def timer():
    return _time() * sum_cpus  #返回當(dāng)前時(shí)間乘以CPU核心數(shù)量
 
pid_cpuinfo = {} #初始化一個(gè)空字典,用于存儲(chǔ)進(jìn)程ID與CPU信息的映射關(guān)系
 
def GetProcessCPU_Pre(id): #計(jì)算并返回給定進(jìn)程ID的CPU利用率
    p = psutil.Process(id) #根據(jù)提供的進(jìn)程ID,使用psutil庫(kù)的Process類實(shí)例化一個(gè)進(jìn)程對(duì)象
    tt = p.cpu_times()  # 獲取進(jìn)程的CPU時(shí)間信息
    st0, tt0_0, tt0_1 = pid_cpuinfo.get(id, (0, 0, 0))  # 獲取之前保存的進(jìn)程ID對(duì)應(yīng)的CPU信息,初始時(shí)設(shè)定為0
    st1, tt1_0, tt1_1 = timer(), tt.user, tt.system #計(jì)算當(dāng)前時(shí)間、進(jìn)程用戶態(tài)CPU時(shí)間和系統(tǒng)態(tài)CPU時(shí)間
 
    delta_proc = (tt1_0 - tt0_0) + (tt1_1 - tt0_1) #計(jì)算進(jìn)程CPU時(shí)間的增量
    delta_time = st1 - st0 #計(jì)算時(shí)間增量
    try:
        cpus_percent = ((delta_proc / delta_time) * 100) #計(jì)算CPU利用率的百分比
    except:
        cpus_percent = 0.0
 
    pid_cpuinfo[id] = [st1, tt1_0, tt1_1] ##更新進(jìn)程ID對(duì)應(yīng)的CPU信息
    return "{:.2f}".format(cpus_percent) #返回格式化后的CPU利用率值,保留兩位小數(shù)
 
# 輸入需要檢查的進(jìn)程ID
process_id = 25400 #25400為我此時(shí)要計(jì)算cpu利用率的進(jìn)程ID
result = GetProcessCPU_Pre(process_id)
print(result)

二、查看進(jìn)程ID

在不同的操作系統(tǒng)中,查看進(jìn)程ID的方法可能會(huì)有所不同。以下是一些常見操作系統(tǒng)中查看進(jìn)程ID的方法:

Windows:

1. 打開任務(wù)管理器:

可以使用快捷鍵`Ctrl + Shift + Esc`來(lái)打開任務(wù)管理器。

在任務(wù)管理器中,切換到“詳細(xì)信息”選項(xiàng)卡。

在“詳細(xì)信息”選項(xiàng)卡中,可以查看各個(gè)進(jìn)程的PID(Process ID)。

macOS:

1. 打開活動(dòng)監(jiān)視器:

通過`Spotlight`搜索欄搜索“活動(dòng)監(jiān)視器”并打開。

在“CPU”或“進(jìn)程”選項(xiàng)卡中,你可以看到各個(gè)進(jìn)程的PID。

Linux (Ubuntu):

1. 使用命令行:

打開終端。

輸入以下命令可以查看所有正在運(yùn)行的進(jìn)程及其PID:

ps -ef

2. 使用系統(tǒng)監(jiān)控工具:

有些Linux發(fā)行版提供了系統(tǒng)監(jiān)控工具,如`System Monitor`,通過這類圖形界面工具也可以查看進(jìn)程及其PID。

無(wú)論在哪種操作系統(tǒng)下,通常情況下都可以通過任務(wù)管理器、活動(dòng)監(jiān)視器或命令行來(lái)查看運(yùn)行的進(jìn)程及其對(duì)應(yīng)的進(jìn)程ID。根據(jù)你使用的操作系統(tǒng)和喜好選擇適合你的方法即可輕松查看進(jìn)程ID。

三、運(yùn)行結(jié)果

在PyCharm中的運(yùn)行結(jié)果如下:

在ubantu系統(tǒng)運(yùn)行可參考此教程:在Ubuntu系統(tǒng)中運(yùn)行python代碼的幾個(gè)步驟

方法補(bǔ)充

除了上文的方法,小編還為大家整理了其他Python獲取進(jìn)程的CPU利用率的方法,希望對(duì)大家有所幫助

_timer = getattr(time, 'monotonic', time.time)
num_cpus = psutil.cpu_count() or 1
def timer():
    return _timer() * num_cpus
 
pid_cpuinfo = {}
def GetProcessCPU_Pre(id):
    p = psutil.Process(id)
    pt = p.cpu_times()
    st1,pt1_0,pt1_1 = timer(),pt.user,pt.system   # new
    st0,pt0_0,pt0_1 = pid_cpuinfo.get(id,(0,0,0)) # old
 
    delta_proc = (pt1_0 - pt0_0) + (pt1_1 - pt0_1)
    delta_time = st1 - st0
    try:
        cpus_percent = ((delta_proc / delta_time) * 100)
    except:
        cpus_percent = 0.0
 
    pid_cpuinfo[id] = [st1,pt1_0,pt1_1]
    return "{:.2f}".format(cpus_percent)

python監(jiān)控指定進(jìn)程的CPU利用率

import time
from tkinter import simpledialog
import tkinter
import psutil
import os
 
root=tkinter.Tk()
root.withdraw()
 
pid=int(simpledialog.askstring(title="pid",prompt="輸入進(jìn)程號(hào)"))
p=psutil.Process(pid)
 
filename=p.name().split(".")[0]+"Process"+str(pid)+".csv"
#if os.path.exists("./"+filename):
#    os.remove("./"+filename)
 
# 文件第一行寫入進(jìn)程名
f=open("./"+filename,"a+")
f.write(p.name()+"\n")
f.write("TIME,%CPU,%MEM\n")
f.close()
 
# 循環(huán)記錄時(shí)間、進(jìn)程CPU利用率,內(nèi)存占用
while True:
 
    f=open("./"+filename,"a+")
    current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time()))
    cpu_percent=p.cpu_percent()
    mem_percent=p.memory_percent()
    line=current_time+","+str(cpu_percent)+","+str(mem_percent)
    f.write(line+"\n")
    f.close()
    time.sleep(3)

到此這篇關(guān)于Python獲取某一進(jìn)程的CPU利用率的方法詳解的文章就介紹到這了,更多相關(guān)Python獲取進(jìn)程CPU利用率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JAVA SWT事件四種寫法實(shí)例解析

    JAVA SWT事件四種寫法實(shí)例解析

    這篇文章主要介紹了JAVA SWT事件四種寫法實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用詳解

    Python實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用詳解

    這篇文章主要介紹了Python實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中實(shí)例方法、類方法、靜態(tài)方法的概念、原理、用法及相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Python SELENIUM上傳文件或圖片實(shí)現(xiàn)過程

    Python SELENIUM上傳文件或圖片實(shí)現(xiàn)過程

    這篇文章主要介紹了Python SELENIUM上傳文件或圖片實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 基于python?的Pygame最小開發(fā)框架

    基于python?的Pygame最小開發(fā)框架

    這篇文章主要介紹了基于python?的Pygame最小開發(fā)框架,文章基于python的相關(guān)資料圍繞主題展開詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • python selenium 彈出框處理的實(shí)現(xiàn)

    python selenium 彈出框處理的實(shí)現(xiàn)

    這篇文章主要介紹了python selenium 彈出框處理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • python selenium 獲取標(biāo)簽的屬性值、內(nèi)容、狀態(tài)方法

    python selenium 獲取標(biāo)簽的屬性值、內(nèi)容、狀態(tài)方法

    今天小編就為大家分享一篇python selenium 獲取標(biāo)簽的屬性值、內(nèi)容、狀態(tài)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-06-06
  • Python實(shí)現(xiàn)詞云圖詞頻統(tǒng)計(jì)

    Python實(shí)現(xiàn)詞云圖詞頻統(tǒng)計(jì)

    這篇文章主要為大家詳細(xì)介紹了Python數(shù)據(jù)分析中的詞頻統(tǒng)計(jì)和詞云圖可視化,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2022-12-12
  • Python實(shí)現(xiàn)的多進(jìn)程和多線程功能示例

    Python實(shí)現(xiàn)的多進(jìn)程和多線程功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的多進(jìn)程和多線程功能,結(jié)合實(shí)例形式分析了Python多線程與多進(jìn)程實(shí)現(xiàn)分布式系統(tǒng)功能相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 在Python中預(yù)先初始化列表內(nèi)容和長(zhǎng)度的實(shí)現(xiàn)

    在Python中預(yù)先初始化列表內(nèi)容和長(zhǎng)度的實(shí)現(xiàn)

    今天小編就為大家分享一篇在Python中預(yù)先初始化列表內(nèi)容和長(zhǎng)度的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2019-11-11
  • python flask實(shí)現(xiàn)分頁(yè)效果

    python flask實(shí)現(xiàn)分頁(yè)效果

    這篇文章主要為大家詳細(xì)介紹了python flask實(shí)現(xiàn)分頁(yè)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06

最新評(píng)論