Python测量CPU和内存使用率

简介: 这些示例帮助您了解如何在Python中测量CPU和内存使用率。根据需要,可以进一步完善这些示例,例如可视化结果或限制程序在特定范围内的资源占用。

在Python中,有多种库和方法可用于测量CPU和内存使用率。本回答将提供一种适用于各种操作系统的方法,包括Windows,macOS和Linux。我们将使用psutil库来实现这一目标。

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

pip install psutil
​

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

import psutil
import time

def get_cpu_usage_percentage():
    return psutil.cpu_percent(interval=1)

def get_memory_usage_percentage():
    memory_stats = psutil.virtual_memory()
    return memory_stats.percent

while 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 psutil

def 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_list

process_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()的函数,该函数返回一个包含当前进程及其资源占用情况的列表。我们遍历这个列表并打印出每个进程的相关信息。

这些示例帮助您了解如何在Python中测量CPU和内存使用率。根据需要,可以进一步完善这些示例,例如可视化结果或限制程序在特定范围内的资源占用。

目录
相关文章
|
5月前
|
存储 设计模式 监控
快速定位并优化CPU 与 JVM 内存性能瓶颈
本文介绍了 Java 应用常见的 CPU & JVM 内存热点原因及优化思路。
782 166
|
3月前
|
存储 设计模式 监控
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
如何快速定位并优化CPU 与 JVM 内存性能瓶颈?
|
4月前
|
人工智能 运维 监控
2025年阿里云服务器配置选择全攻略:CPU、内存、带宽与系统盘详解
在2025年,阿里云服务器以高性能、灵活扩展和稳定服务助力数字化转型,提供轻量应用服务器、通用型g8i实例等多样化配置,满足个人博客至企业级业务需求。针对不同场景(如计算密集型、内存密集型),推荐相应实例类型与带宽规划,强调成本优化策略,包括包年包月节省成本、ESSD云盘选择及地域部署建议。文中还提及安全设置、监控备份的重要性,并指出未来可关注第九代实例g9i支持的新技术。整体而言,阿里云致力于帮助用户实现性能与成本的最优平衡。 以上简介共计238个字符。
|
4月前
|
监控 Java 计算机视觉
Python图像处理中的内存泄漏问题:原因、检测与解决方案
在Python图像处理中,内存泄漏是常见问题,尤其在处理大图像时。本文探讨了内存泄漏的原因(如大图像数据、循环引用、外部库使用等),并介绍了检测工具(如memory_profiler、objgraph、tracemalloc)和解决方法(如显式释放资源、避免循环引用、选择良好内存管理的库)。通过具体代码示例,帮助开发者有效应对内存泄漏挑战。
156 1
|
6月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
595 7
|
6月前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
138 3
|
7月前
|
算法 Java 程序员
Python内存管理机制深度剖析####
本文将深入浅出地探讨Python中的内存管理机制,特别是其核心组件——垃圾收集器(Garbage Collector, GC)的工作原理。不同于传统的摘要概述,我们将通过一个虚拟的故事线,跟随“内存块”小M的一生,从诞生、使用到最终被回收的过程,来揭示Python是如何处理对象生命周期,确保高效利用系统资源的。 ####
83 1
|
7月前
|
弹性计算 Kubernetes Perl
k8s 设置pod 的cpu 和内存
在 Kubernetes (k8s) 中,设置 Pod 的 CPU 和内存资源限制和请求是非常重要的,因为这有助于确保集群资源的合理分配和有效利用。你可以通过定义 Pod 的 `resources` 字段来设置这些限制。 以下是一个示例 YAML 文件,展示了如何为一个 Pod 设置 CPU 和内存资源请求(requests)和限制(limits): ```yaml apiVersion: v1 kind: Pod metadata: name: example-pod spec: containers: - name: example-container image:
955 2
|
7月前
|
安全 开发者 Python
Python的内存管理pymalloc
Python的内存管理pymalloc
|
7月前
|
安全 开发者 Python
Python的内存管理pymalloc
Python的内存管理pymalloc

推荐镜像

更多