【发布时间】:2010-11-17 10:56:11
【问题描述】:
python 脚本如何知道它当前使用的系统内存量? (假设是基于 Unix 的操作系统)
【问题讨论】:
python 脚本如何知道它当前使用的系统内存量? (假设是基于 Unix 的操作系统)
【问题讨论】:
如果您想知道解释器使用的总内存,请在 Linux 上阅读 /proc/self/statm。
如果您想了解您的对象使用了多少内存,请使用Pympler。
【讨论】:
类似的问题:
看起来有用于 python 的内存分析器。
PySizer 似乎很受欢迎。 堆是另一个。
Google:“python 内存分析器”了解更多信息。
【讨论】:
我使用过一次我在ActiveState 上找到的 sn-p,它似乎运行良好。 实际上,它使用的是 Martin v. Löwis 建议的相同方法。
【讨论】:
我认为没有简单的方法可以做到这一点。实际上,在 Unix 操作系统上,我可能会使用 os.getpid() 并调用 ps 或读取 /proc 中的条目。
Python 2.6 添加了 sys.getsizeof(),您可以将其与 gc.get_objects() 一起使用来遍历工作对象集的大小:
>>> print sum([sys.getsizeof(o) for o in gc.get_objects()])
561616
我认为这在实践中不是一个好主意。
【讨论】:
我没用过,不过你可以看看heapy (http://guppy-pe.sourceforge.net/#Heapy),它看起来是python程序的内存分析器。
【讨论】: