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

标签 c++ winapi memory memory-leaks

我在这里找到了这个问题的几个答案,但没有一个能回答我的问题。 我正在尝试追踪非托管 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];

但是,这没有提到有关提交内存的内容:

有人可以帮忙吗? 保罗

最佳答案

您似乎想使用 GetProcessMemoryInfo 。这会填充 PROCESS_MEMORY_COUNTERS结构。

您会感兴趣的此结构的关键元素是

PagefileUsage The Commit Charge value in bytes for this process. Commit Charge is the total amount of memory that the memory manager has committed for a running process.

关于c++ - 如何通过 C++ 检索已提交的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16558941/

相关文章:

c++ - 在库中拆分实用程序功能以最大化可重用性的最佳方法是什么?

windows - 如何以编程方式启用/禁用 Windows 启动项?

c++ - 从文件中读取多个序列化对象

c++ - 用户输入存储在 char 数组中 (C++)

c++ - 我应该使用 URLDownloadToFile 吗?

c++ - 如何获取 Win32 线程的名称?

C 编程创建动态数组

c - fclose() 然后是 free()?

Java - 对象越少,使用的内存就越大

c++ - 在 std::initializer_list 的构造函数的参数列表中折叠 vs "normal"折叠