如何通过C ++检索已提交的内存

时间:2013-05-15 07:14:30

标签: c++ winapi memory memory-leaks

我在SO上找到了这个问题的几个答案,但没有一个能回答我的问题。 我正在尝试跟踪我们的非托管C ++应用程序中的一些内存泄漏,并且通过阅读以下内容,似乎“内存 - 提交大小”是监视内存使用时使用的最佳度量标准: http://forum.sysinternals.com/virtual-private-bytes-and-working-set_topic18296.html

以下是Windows任务管理器报告的各种指标的说明: http://windows.microsoft.com/en-us/windows-vista/what-do-the-task-manager-memory-columns-mean

我发现以下内容描述了如何检索命名进程的工作集数据: http://msdn.microsoft.com/en-us/library/76yt3c0w.aspx

System.Diagnostics.Process[] processes =
    System.Diagnostics.Process.GetProcessesByName(theprocessName);
System.Diagnostics.Process process = processes[0];

但是,这没有提及承诺记忆:

有人可以帮忙吗? 保罗

1 个答案:

答案 0 :(得分:4)

看起来您想使用GetProcessMemoryInfo。这会填充PROCESS_MEMORY_COUNTERS结构。

您感兴趣的这个结构的关键元素是

  

PagefileUsage 此进程的Commit Charge值(以字节为单位)。 Commit Charge是内存管理器为正在运行的进程提交的内存总量。