从Python中获取总内存和可用内存

10 投票
5 回答
11952 浏览
提问于 2025-04-15 13:16

在一个Python应用程序中,我怎么能以跨平台的方式获取系统的总内存(RAM)和当前有多少内存是空闲的呢?

理想情况下,空闲内存的数量应该只考虑那些可以实际分配给Python程序的物理内存。

5 个回答

6

关于释放内存这一部分,wx库里有一个函数:

wx.GetFreeMemory()

不过很遗憾,这个函数只在Windows系统上有效。在Linux和Mac系统上,要么返回“-1”,要么会抛出一个叫NotImplementedError的错误。

7

psutil 也是一个不错的选择。不过,它也需要安装一个库。

>>> import psutil
>>> psutil.virtual_memory()
vmem(total=8374149120L, available=2081050624L, percent=75.1,
     used=8074080256L, free=300068864L, active=3294920704,
     inactive=1361616896, buffers=529895424L, cached=1251086336)
12

你有没有试过 SIGAR - 系统信息收集器和报告工具?安装之后

import os, sigar

sg = sigar.open()
mem = sg.mem()
sg.close() 
print mem.total() / 1024, mem.free() / 1024

希望这能帮到你

撰写回答