小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python獲取單個程序CPU使用情況趨勢圖

 天才白癡書館 2015-04-14

Python獲取單個程序CPU使用情況趨勢圖

投稿:junjie 字體:[增加 減小] 類型:轉載
這篇文章主要介紹了Python獲取單個程序CPU使用情況趨勢圖,本文使用matplotlib將數據可視化,需要的朋友可以參考下

本文定位:已將CPU歷史數據存盤,等待可視化進行分析,可暫時沒有思路。
前面一篇文章(http://www.jb51.net/article/61956.htm)提到過在linux下如何用python將top命令的結果進行存盤,本文是它的后續(xù)。

python中我們可以用matplotlib很方便的將數據可視化,比如下面的代碼:

復制代碼 代碼如下:

import matplotlib.pyplot as plt

list1 = [1,2,3]
list2 = [4,5,9]
plt.plot(list1,list2)
plt.show()

執(zhí)行效果如下:

上面只是給plot函數傳了兩個list數據結構,show一下圖形就出來了……哈哈,很方便吧!
獲取CPU趨勢圖就用這個了!
可我們現在得到的數據沒那么友好,比如我現在有個文件(file.txt),內容如下:

復制代碼 代碼如下:

Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu(s): 7.7%us, 7.7%sy, 0.0%ni, 76.9%id, 0.0%wa, 0.0%hi, 7.7%si, 0.0%st
Cpu(s): 0.0%us, 9.1%sy, 0.0%ni, 90.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu(s): 9.1%us, 0.0%sy, 0.0%ni, 90.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu(s): 8.3%us, 8.3%sy, 0.0%ni, 83.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu(s): 0.0%us, 9.1%sy, 0.0%ni, 90.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

其中,第一列為時間,第六列為CPU的idle值。

要從這組數據中得出CPU使用情況趨勢圖,我們就要做些工作了。

下面是代碼,這里提供一個思路,需要的朋友拷回去改一下吧:

復制代碼 代碼如下:

#coding:utf-8
'''
      File      : cpuUsage.py
      Author    : Mike
      E-Mail    : Mike_Zhang@live.com
'''
import matplotlib.pyplot as plt
import string

def getCpuInfData(fileName):
    ret = {}
    f = open(fileName,"r")
    lineList = f.readlines()
    for line in lineList:
        tmp = line.split()
        sz = len(tmp)
        t_key = string.atoi(tmp[0]) # 得到key
        t_value = 100.001-string.atof(line.split(':')[1].split(',')[3].split('%')[0]) # 得到value
        print t_key,t_value   
        if not ret.has_key(t_key) :
            ret[t_key] = []
        ret[t_key].append(t_value)
    f.close()
    return ret
   
retMap1 = getCpuInfData("file.txt")
# 生成CPU使用情況趨勢圖
list1 = retMap1.keys()
list1.sort()
list2 = []
for i in list1:list2.append(retMap1[i])
plt.plot(list1,list2)
plt.show()

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多