国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2019-11-25 17:58:05
字體:
供稿:網(wǎng)友

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

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

復(fù)制代碼 代碼如下:

import matplotlib.pyplot as plt

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

執(zhí)行效果如下:

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

復(fù)制代碼 代碼如下:

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值。

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

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

復(fù)制代碼 代碼如下:

#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ā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 饶平县| 沾化县| 旬邑县| 武威市| 邵阳市| 当涂县| 扎囊县| 化德县| 九寨沟县| 贵定县| 平定县| 建平县| 盖州市| 江西省| 保康县| 仪征市| 乌鲁木齐县| 六安市| 叶城县| 麻城市| 松潘县| 安庆市| 怀远县| 龙里县| 镇康县| 绥中县| 积石山| 大城县| 凤城市| 鸡东县| 浮山县| 新河县| 桃园市| 昌宁县| 鄂伦春自治旗| 开封市| 隆昌县| 搜索| 乌兰察布市| 行唐县| 策勒县|