Python脚本知道它使用了多少内存[重复]

Posted

技术标签:

【中文标题】Python脚本知道它使用了多少内存[重复]【英文标题】:Python script knows how much memory it's using [duplicate] 【发布时间】:2010-11-17 10:56:11 【问题描述】:

python 脚本如何知道它当前使用的系统内存量? (假设是基于 Unix 的操作系统)

【问题讨论】:

【参考方案1】:

如果您想知道解释器使用的总内存,请在 Linux 上阅读 /proc/self/statm

如果您想了解您的对象使用了多少内存,请使用Pympler。

【讨论】:

【参考方案2】:

类似的问题:

Python memory profiler

看起来有用于 python 的内存分析器。

PySizer 似乎很受欢迎。 堆是另一个。

Google:“python 内存分析器”了解更多信息。

【讨论】:

+1 - 非常相似。我认为这个问题可以作为重复关闭。【参考方案3】:

我使用过一次我在ActiveState 上找到的 sn-p,它似乎运行良好。 实际上,它使用的是 Martin v. Löwis 建议的相同方法。

【讨论】:

【参考方案4】:

我认为没有简单的方法可以做到这一点。实际上,在 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

我认为这在实践中不是一个好主意。

【讨论】:

【参考方案5】:

我没用过,不过你可以看看heapy (http://guppy-pe.sourceforge.net/#Heapy),它看起来是python程序的内存分析器。

【讨论】:

以上是关于Python脚本知道它使用了多少内存[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Perl 脚本如何知道它自己的内存占用?

8个常用爬虫技巧盘点,看看你知道多少?

在 Python 中测量脚本运行时间 [重复]

如何将数据从 Perl 发送到 Python

如何释放Python占用的内存

通过 terraform 在 cloud init 中传递 python 脚本