gpt4 book ai didi

python - 确定Python的实际内存使用情况

转载 作者:可可西里 更新时间:2023-11-01 11:08:12 25 4
gpt4 key购买 nike

我目前正在尝试调试我的 Python 程序的内存使用情况(在装有 CPython 2.7 的 Windows 上)。但不幸的是,我什至找不到任何方法来可靠地测量它当前使用的内存量。

我一直在使用任务管理器/资源监视器来测量进程内存,但这似乎只对确定峰值内存消耗有用。通常情况下,即使在相关对象被垃圾回收后很长时间,Python 也不会减少 Commit 或 Working Set。

有没有办法找出 Python 实际使用了多少内存,或者没有使用多少内存,以强制它释放未使用的内存?我不想使用任何需要重新编译解释器的东西。

证明它没有释放未使用内存的行为示例:

(after some calculations)   # 290k
gc.collect() # still 290k
x = range(9999999) # 444k
del x # 405k
gc.collect() # 40k

最佳答案

Is there any way to find out how much memory Python is actually using,

不是来自内置 Python。

您可以使用 sys.getsizeof 大致了解每个对象的内存使用情况但是,这不会捕获总内存使用量、过度分配、碎片、未使用但未释放回操作系统的内存。

有一个名为 Pympler 的第三方工具这可以帮助进行内存分析。此外,还有一个名为 Guppy 的编程环境。用于对象和堆内存大小调整、概要分析和分析。还有一个类似的项目叫做PySizer带有用于 Python 代码的内存使用分析器。

or failing that, to force it to free up its unused memory?

没有用于强制释放内存的公共(public) API。

关于python - 确定Python的实际内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com