【问题标题】:What's the Best Way to Measure Memory Use from a Program?从程序中测量内存使用的最佳方法是什么?
【发布时间】:2010-09-23 16:58:56
【问题描述】:

我一直在尝试优化我正在开发的 Windows 程序,试图找到可以最大限度减少内存使用的最佳数据结构。它加载大块数据,因此对于大文件,它可以使用大量 RAM。

对于内存测量,我一直在使用 GlobalMemoryStatusEx。见:http://msdn.microsoft.com/en-us/library/aa366589(VS.85).aspx

我相信这适用于大多数版本的 Windows,从 Windows 2000 一直到并包括 Windows Vista。

这是从程序中测量内存使用的首选方法,还是有其他更好的方法?


附录:找到 Stackoverflow 问题:How to get memory usage under Windows in C++ 引用 GetProcessMemoryInfo

我会试试那个。

【问题讨论】:

  • @lkessler:你是在写一个 .NET 程序还是普通的 Win32?

标签: windows memory-management


【解决方案1】:

如果您尝试优化自己的程序内存,我建议您使用内存分析器工具。 那里有很多......有些是免费的,有些不是......你一定会找到你需要的。 这些工具是专门为您的需要而编写的(也用于内存泄漏搜索),所以......很难与它们进行比较并在您自己的程序中自己做类似的事情:)

【讨论】:

    【解决方案2】:

    我使用valgrind 来跟踪内存使用情况,以及分析代码和检测内存泄漏。我相信,massif 工具会跟踪堆栈和堆上的内存使用情况。

    【讨论】:

    • 看起来是个不错的工具。不幸的是,我在 Windows 上,而 Valgrind 似乎适用于 Unix。
    【解决方案3】:

    请参阅我的问题中的附录。

    【讨论】:

      猜你喜欢
      • 2014-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多