psutil的使用方法以及当前程序内存使用量

获取内存使用率

psutil.Process() 会返回当前进程的 Process 对象,然后调用 memory_info() 方法来获取进程的内存信息,其中 rss 属性表示当前进程占用的实际物理内存大小。最后,通过格式化字符串将结果输出。
需要注意的是,由于 psutil 库是一个第三方库,需要先安装才能使用。可以通过 pip 命令来安装 psutil,例如 pip install psutil。
另外,由于不同操作系统对内存占用的计算方式不同,因此在跨平台使用时需要注意


print("当前占用内存大小:%.2f M" % (psutil.Process().memory_info().rss / (1024 * 1024)))

psutil 是一个跨平台的系统信息获取库,可以用于获取系统的 CPU、内存、磁盘、网络等信息。除了获取当前进程的信息,psutil 还提供了许多其他的使用方法,例如:

获取系统 CPU 使用率


import psutil
# 获取 CPU 使用率,返回一个百分比
cpu_percent = psutil.cpu_percent()

获取系统内存使用情况


import psutil
# 获取系统内存使用情况
mem = psutil.virtual_memory()
# 获取系统内存总量,单位是字节
total = mem.total
# 获取系统可用内存总量,单位是字节
available = mem.available
# 获取系统内存使用率,返回一个百分比
percent = mem.percent

获取系统磁盘使用情况


import psutil
# 获取系统磁盘使用情况
disk = psutil.disk_usage('/')
# 获取磁盘总大小,单位是字节
total = disk.total
# 获取磁盘已使用大小,单位是字节
used = disk.used
# 获取磁盘可用大小,单位是字节
free = disk.free
# 获取磁盘使用率,返回一个百分比
percent = disk.percent

获取系统网络连接情况


import psutil
# 获取系统网络连接情况
connections = psutil.net_connections()
# 遍历所有网络连接
for conn in connections:
    # 获取连接的本地地址
    laddr = conn.laddr
    # 获取连接的远程地址
    raddr = conn.raddr
    # 获取连接的状态
    status = conn.status

获取系统进程信息


import psutil
# 获取系统所有进程信息
processes = psutil.process_iter()
# 遍历所有进程
for process in processes:
    # 获取进程 ID
    pid = process.pid
    # 获取进程名称
    name = process.name()
    # 获取进程执行命令
    cmdline = process.cmdline()
    # 获取进程 CPU 占用率,返回一个百分比
    cpu_percent = process.cpu_percent()
    # 获取进程内存使用情况
    mem_info = process.memory_info()
    # 获取进程状态
    status = process.status()

以上只是 psutil 库提供的一些常用方法,还有许多其他的使用方法可以查看官方文档。需要注意的是,由于 psutil 库需要访问系统底层信息,因此需要以管理员权限运行。在 Linux 系统中,可以使用 sudo 命令来运行 Python 程序;在 Windows 系统中,可以以管理员身份运行命令提示符或 PowerShell 窗口。

header-icon
还有更多的使用 方法吗

header-icon
是的,除了上述提到的 psutil 库的常用方法之外,还有其他一些有用的方法,例如:

获取系统进程的子进程列表


import psutil
# 获取当前进程的子进程列表
children = psutil.Process().children(recursive=True)

获取系统用户列表


import psutil
# 获取系统用户列表
users = psutil.users()
# 遍历所有用户
for user in users:
    # 获取用户名
    username = user.name
    # 获取用户终端
    terminal = user.terminal
    # 获取用户登录时间
    started = user.started

获取系统启动时间


import psutil
# 获取系统启动时间
boot_time = psutil.boot_time()

获取系统 CPU 核心数


import psutil
# 获取 CPU 核心数
cpu_count = psutil.cpu_count()

获取系统 CPU 逻辑核心数


import psutil
# 获取 CPU 逻辑核心数
logical_cpu_count = psutil.cpu_count(logical=True)

获取系统 CPU 频率


import psutil
# 获取 CPU 频率
cpu_freq = psutil.cpu_freq()
# 获取 CPU 当前频率
current_freq = cpu_freq.current
# 获取 CPU 最大频率
max_freq = cpu_freq.max
# 获取 CPU 最小频率
min_freq = cpu_freq.min

获取系统网络 IO 信息


import psutil
# 获取系统网络 IO 信息
net_io_info = psutil.net_io_counters()
# 获取网络总字节数
bytes_sent = net_io_info.bytes_sent
bytes_recv = net_io_info.bytes_recv
# 获取网络总数据包数
packets_sent = net_io_info.packets_sent
packets_recv = net_io_info.packets_recv

获取系统硬盘 IO 信息


import psutil
# 获取系统硬盘 IO 信息
disk_io_info = psutil.disk_io_counters()
# 获取硬盘总读写字节数
read_bytes = disk_io_info.read_bytes
write_bytes = disk_io_info.write_bytes
# 获取硬盘总读写次数
read_count = disk_io_info.read_count
write_count = disk_io_info.write_count

需要注意的是,由于 psutil 库需要访问系统底层信息,因此需要以管理员权限运行。在 Linux 系统中,可以使用 sudo 命令来运行 Python 程序;在 Windows 系统中,可以以管理员身份运行命令提示符或 PowerShell 窗口。


  目录