导语

 哈喽!大家好,我是木木子!准时上线给大家更新啦!

【Python太牛了】一款强大的实时监控 CPU使用率 专业工具新鲜出炉啦~_小工具


Ps:小故事????

前两天有位粉丝朋友在群里问我说,有没有不装一些我们熟知的电脑管理软件但是依然可以查看

CPU的使用率方法,或者能够介绍一款比较给力的小插件也好。确实,在生活中有不少人是不喜欢

装那些管理软件的。

今天,木木子就给大家介绍一款手写编程代码的小脚本,能够轻松在界面上展示:利用Python实

时监控CPU使用率。

随时展现,也无需下载管理软件,几十行代码即可搞定~


所有文章完整的素材+源码都在????????

​​


【Python太牛了】一款强大的实时监控 CPU使用率 专业工具新鲜出炉啦~_管理软件_02

正文

一、模块简介????

????1.0 关于模块的详细用法参考

psutil文档:https://psutil.readthedocs.io/en/latest/
matplotlib文档:https://matplotlib.org/users/index.html

????1.1 用到psutil模块

小介绍:

psutil是一个跨平台库(http://code.google.com/p/psutil/),能够轻松实现获取系统运行的进程和

系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分析和限制系统资

源及进程的管理。

它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、

nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。

目前支持32位和64位的Linux、Windows、OS X、FreeBSD和Sun Solaris等操作系统。

????1.2 用到matplotlib模块

小介绍:

Matplotlib 是一个 ​​Python​​ 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量

级别的​​图形​​。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,

条形图,错误图,散点图等。

二、准备中????

????2.1 相关环境

Python3.6、Pycharm。相关模块:matplotlib模块;psutil模块。

????2.2 安装

这里小编统一使用:pip install -i https://pypi.douban.com/simple/+模块名

三、开始敲代码????

????3.1 代码内容

利用Python实时监控CPU使用率:

  • 执行用户进程
  • 执行内核进程和中断
  • CPU处于空闲状态

主要是这三个方面的代码编写过程。

????3.2 附完整代码

import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager
import psutil as p


POINTS = 300
fig, ax = plt.subplots()
ax.set_ylim([0, 100])
ax.set_xlim([0, POINTS])
ax.set_autoscale_on(False)
ax.set_xticks([])
ax.set_yticks(range(0, 101, 10))
ax.grid(True)
# 执行用户进程的时间百分比
user = [None] * POINT
# 执行内核进程和中断的时间百分比
sys = [None] * POINT
# CPU处于空闲状态的时间百分比
idle = [None] * POINT
l_user, = ax.plot(range(POINTS), user, label='User %')
l_sys, = ax.plot(range(POINTS), sys, label='Sys %')
l_idle, = ax.plot(range(POINTS), idle, label='Idle %')
ax.legend(loc='upper center', ncol=4, prop=font_manager.FontProperties(size=10))
bg = fig.canvas.copy_from_bbox(ax.bbox)


def cpu_usage():
t = p.cpu_times()
return [t.user, t.system, t.idle]


before = cpu_usage()


def get_cpu_usage():
global before
now = cpu_usage()
delta = [now[i] - before[i] for i in range(len(now))]
total = sum(delta)
before = now
return [(100.0*dt)/(total+0.1) for dt in delta]


def OnTimer(ax):
global user, sys, idle, bg
tmp = get_cpu_usage()
user = user[1:] + [tmp[0]]
sys = sys[1:] + [tmp[1]]
idle = idle[1:] + [tmp[2]]
l_user.set_ydata(user)
l_sys.set_ydata(sys)
l_idle.set_ydata(idle)
while True:
try:
ax.draw_artist(l_user)
ax.draw_artist(l_sys)
ax.draw_artist(l_idle)
break
except:
pass
ax.figure.canvas.draw()


def start_monitor():
timer = fig.canvas.new_timer(interval=100)
timer.add_callback(OnTimer, ax)
timer.start()
plt.show()


if __name__ == '__main__':
start_monitor()

四、效果展示????

????4.1 动态视频展示——



利用Python实时监控CPU使用率!


????4.2 静态截图展示——

【Python太牛了】一款强大的实时监控 CPU使用率 专业工具新鲜出炉啦~_python_03

​总结

嘻嘻,文章到这里就结束啦,粉丝拿到这个代码之后感觉这款小工具还是挺实用滴,有爱的小伙伴

儿可以找我拿源码,放心食用~

????完整的免费源码领取处:找我吖!文末可得自行领取,滴滴我也可!

(更多内容+源码都在文章汇总哦!!欢迎阅读~)

【Python太牛了】一款强大的实时监控 CPU使用率 专业工具新鲜出炉啦~_小工具_04