检查Windows下Python程序的最大内存使用情况

时间:2012-02-03 17:24:01

标签: python windows memory resources python-3.x

我想从Python程序中获取Python程序使用的最大物理内存(ActiveState Python 3.2,在Windows 7下)。

理想情况下,每0.1秒左右,我想查看内存使用情况,如果它超过了目前为止看到的最大值,则更新最大值(存储在某处的全局变量)。

更新:

我意识到我的问题与Which Python memory profiler is recommended?密切相关。

很抱歉不清楚。据我所知,我有两个特定问题,不是由常规内存分析器解决的:

  1. 我不仅需要查看Python分配的内存,还需要查看Python程序使用的总内存(在Windows下,这将包括DLL等)。换句话说,在Windows下,这正是您在Task Manager中看到的内容。

  2. 我需要在任何给定的瞬间看到最大内存而不是内存。除了在我认为我正在分配大量代码时在代码周围进行大量内存检查时,我想不出办法。

3 个答案:

答案 0 :(得分:2)

我认为你可以进入控制面板,管理工具,性能,点击'+',在左栏下选择'Performance Object',Pool Paged Bytes或Pool Unpaged Bytes下的'Processor',然后选择你的流程在右栏下。 您可以使用性能监视器生成日志文件。

答案 1 :(得分:1)

我没有找到任何方法来准确地用Python做我想要的。

然而,在使用Windows 7任务管理器时,我发现我可以添加一个列“Peak Working Set(Memory)”。因此,如果我只是在它退出之前暂停python程序(并从同一个原因捕获main()中的异常暂停),我可以在任务管理器中看到峰值内存。

我知道这很愚蠢(例如,它不允许我将它打印到日志文件,根据我正在使用的内存做些事情等等),但它总比没有好。

答案 2 :(得分:0)

以下是类似问题的链接:

Which Python memory profiler is recommended?

我用过Guppy / Heapy和Meliae。他们有点不同,但我发现两者都很有用。