热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python教程分享基于Python实现实时监控CPU使用率

导语哈喽!大家好,我是木木子!准时上线给大家更新啦!​ps:小故事前两天有位粉丝朋友在群里问我说,有没有不装一些我们熟知的电脑管理软件但是依然可以查看cpu的使用率方法,或者能够介

导语

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

ps:小故事

前两天有位粉丝朋友在群里问我说,有没有不装一些我们熟知的电脑管理软件但是依然可以查看cpu的使用率方法,或者能够介绍一款比较给力的小插件也好。确实,在生活中有不少人是不喜欢装那些管理软件的。

今天,木木子就给大家介绍一款手写编程代码的小脚本,能够轻松在界面上展示:利用python实时监控cpu使用率,随时展现。也无需下载管理软件,几十行代码即可搞定~

一、模块简介

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

psutil文档

matplotlib文档

1.1 用到psutil模块

小介绍:

psutil是一个跨平台库(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 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()  

四、效果展示

静态截图展示——

基于Python实现实时监控CPU使用率

到此这篇关于基于python实现实时监控cpu使用率的文章就介绍到这了,更多相关python监控cpu内容请搜索<编程笔记>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<编程笔记>!

需要了解更多python教程分享基于Python实现实时监控CPU使用率,都可以关注python教程分享栏目&#8212;编程笔记


推荐阅读
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 我用Tkinter制作了一个图形用户界面,有两个主按钮:“开始”和“停止”。请您就如何使用“停止”按钮终止“开始”按钮为以下代码调用的已运行功能提供建议 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
author-avatar
幸福得味道2011_122
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有