【问题标题】:Check maximum memory usage of Python program under Windows在 Windows 下查看 Python 程序的最大内存使用量
【发布时间】:2012-02-26 07:31:14
【问题描述】:

我想从 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. 我需要查看最大内存而不是任何给定时刻的内存。除了在我认为分配大的东西时在代码周围进行大量内存检查之外,我想不出其他方法。

【问题讨论】:

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


【解决方案1】:

这是一个类似问题的链接:

Which Python memory profiler is recommended?

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

【讨论】:

    【解决方案2】:

    我没有找到任何方法可以用 Python 精确地做我想做的事情。

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

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

    【讨论】:

      【解决方案3】:

      我认为您可以进入控制面板、管理工具、性能,单击“+”,选择“性能对象”下的“处理器”,左列下的池分页字节或池未分页字节,然后选择您的进程在右栏下。 您可以使用性能监视器生成日志文件。

      【讨论】:

      • 哇,这比我预期的要好得多。无论如何,你知道这个或类似的工具是否可以监控我笔记本电脑中独立显卡的时钟速度?我正在尝试诊断一些滞后...
      • 我认为有几个工具,如用于 nVidia 卡的 RivaTuner,但它们特定于您使用的卡。你有什么卡?
      • nVidia,所以我要试试。谢谢。
      猜你喜欢
      • 2010-10-02
      • 2014-05-09
      • 2017-08-12
      • 1970-01-01
      • 2012-08-12
      • 2015-09-29
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      相关资源
      最近更新 更多