当前位置: 首页 > news >正文

Python获取CPU和内存使用率

首先,确保已安装psutil库。如果尚未安装,请运行以下命令进行安装:

pip install psutil

安装完成后,我们就可以使用psutil库来测量CPU和内存使用率了。以下是一个简单的示例代码:

import psutil
import timedef get_cpu_usage_percentage():return psutil.cpu_percent(interval=1)def get_memory_usage_percentage():memory_stats = psutil.virtual_memory()return memory_stats.percentwhile True:cpu_usage = get_cpu_usage_percentage()memory_usage = get_memory_usage_percentage()print(f"CPU使用率:{cpu_usage}%")print(f"内存使用率:{memory_usage}%")time.sleep(5)

这段代码首先引入了psutil库和time库。我们定义了两个函数,分别用于获取CPU和内存使用率。

get_cpu_usage_percentage()返回在过去1秒内的CPU使用率(百分比)。可以通过更改interval参数来调整时间间隔。

get_memory_usage_percentage()函数使用psutil.virtual_memory()方法获取内存统计信息,并返回内存使用率。

最后,在一个无限循环中,我们每5秒调用get_cpu_usage_percentage()和get_memory_usage_percentage()函数,打印出当前CPU和内存使用率。

这个示例提供了一个简单易懂的方法来监测CPU和内存使用率。对于初学者而言,这是一个很好的起点。

如果需要检测系统各个进程的资源占用情况,我们可以结合psutil库的Process类来实现。以下是一个简单的示例:

import psutildef get_process_info():process_info_list = []for process in psutil.process_iter(['pid', 'name', 'cpu_percent', 'memory_percent']):process_info_list.append({'pid': process.info['pid'],'name': process.info['name'],'cpu_percent': process.info['cpu_percent'],'memory_percent': process.info['memory_percent']})return process_info_listprocess_info_list = get_process_info()for process_info in process_info_list:print(f"进程ID: {process_info['pid']}, 进程名称: {process_info['name']}, "f"CPU使用率: {process_info['cpu_percent']}%, "f"内存使用率: {process_info['memory_percent']}%")

在这段代码中,我们定义了一个名为get_process_info()的函数,该函数返回一个包含当前进程及其资源占用情况的列表。我们遍历这个列表并打印出每个进程的相关信息。

http://www.hskmm.com/?act=detail&tid=18730

相关文章:

  • 解决Python requests库POST请求参数顺序问题
  • 使用Tabs选项卡组件快速搭建鸿蒙APP框架
  • 完整教程:从另一个视角看Transformer:注意力机制就是可微分的k-NN算法
  • ACM 杂题选做 题解合集
  • | 和 || 的区别详解及应用场景对比
  • Kubernetes技巧:使用Prometheus监控Pod性能指标
  • 2025.9.27——1橙
  • 在Java 12环境中配置和部署Apache Tomcat
  • android pdf框架-14,mupdf重排 - 详解
  • 详细介绍:基于物联网的智能衣柜系统的设计(论文+源码)
  • 确定Ceph集群中OSD组件与具体物理磁盘的关联
  • JavaScript加解密实践
  • Linux系统中使用df命令详解磁盘使用情况
  • 读人形机器人24岗位替代
  • 在Ubuntu 18.04/20.04 LTS设置静态DNS服务器
  • 分布式 ID 生成方案实战指南:从选型到落地的全场景避坑手册(三) - 实践
  • 队列+宽搜(BFS)-662.二叉树最大宽度-力扣(LeetCode) - 指南
  • JWT攻防实战:混淆、破解与红队利用技术详解
  • “中国英伟达”投资人,赚翻了
  • The 3rd UCUP Stage 29: Metropolis(QOJ contest 1913) 总结
  • 空白金兰契的多维解构与实践路径:从价值表征困境到人机共生伦理
  • 2025中国制造企业500强榜单发布
  • 读 WPF 源代码 了解获取 GlyphTypeface 的 CharacterToGlyphMap 的数量耗时原因
  • 张江,首个万亿市值巨头诞生!
  • Java 与智慧交通:车联网与自动驾驶支持
  • 9月26号
  • 初衷的澄明:空白金兰契的深意
  • Aidoku - 专为iOS/iPadOS打造的免费开源漫画阅读器
  • windos的hyper-v安装的宝塔面板,在面板里面点击重启服务器后再也无法启动面板。
  • Obsidia Git同步方法(偏安卓)