2

我在 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];

然而,这并没有提到关于提交的内存:

任何人都可以帮忙吗?保罗

4

1 回答 1

4

看起来你想使用GetProcessMemoryInfo. 这填充了一个PROCESS_MEMORY_COUNTERS结构。

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

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

于 2013-05-15T07:25:30.957 回答