我目前正在尝试调试我的 Python 程序的内存使用情况(在带有 CPython 2.7 的 Windows 上)。但不幸的是,我什至找不到任何方法来可靠地测量它当前使用的内存量。
我一直在使用任务管理器/资源监视器来测量进程内存,但这似乎只对确定峰值内存消耗有用。很多时候,即使在相关对象被垃圾回收之后很长时间,Python 也不会减少提交或工作集。
有没有办法找出 Python 实际使用了多少内存,或者如果没有,强制它释放未使用的内存?我不想使用任何需要重新编译interperter的东西。
证明它没有释放未使用内存的行为示例:
(after some calculations) # 290k
gc.collect() # still 290k
x = range(9999999) # 444k
del x # 405k
gc.collect() # 40k