【问题标题】:how can I see how much memory my program is eating?我怎样才能看到我的程序正在吃多少内存?
【发布时间】:2012-02-25 16:20:26
【问题描述】:

我的程序正在运行并创建变量,我需要知道这些变量占用的总字节数。

我不想知道系统给我的程序执行的物理内存空间是多少,我知道我可以打开进程管理器找出来。 我不想在我的代码中写入一些 sizeof 和 agregations,这样我就可以知道变量池的总大小(假设代码太复杂而无法像那样修改)。 最后我使用的是Microsoft VC++ 2010 Express,我只是想知道是否有一个工作区可以监控这种信息。

提前致谢。

【问题讨论】:

标签: c++ visual-c++ memory


【解决方案1】:

看看这个:Memory Performance Information 。您可能对正在运行的进程的一些指标感兴趣,您主要需要private bytes,并且这些数据可以通过编程方式或通过Performance Monitor 等工具获得。您还可以使用GetProcessHeaps 枚举进程的堆(如果需要详细信息,甚至可以使用HeapWalk)并直接检查堆分配大小。

【讨论】:

    【解决方案2】:

    Valgrind Massif 分析器是一个很棒的工具(请参阅here),但我认为仅适用于 Unix/Linux。在您的情况下,在 Windows 上,我认为 Insure++softwareverify 是不错的选择(它们是商业工具)。

    Google 的 tcmalloc 提供了一个免费的替代方案,它提供了一个堆分析器 here

    【讨论】:

      猜你喜欢
      • 2016-07-20
      • 2021-11-25
      • 1970-01-01
      • 2015-09-21
      • 2023-01-11
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2016-02-29
      相关资源
      最近更新 更多