如何获取当前进程的Windows性能计数器

时间:2010-12-08 04:42:35

标签: c++ windows performance

我正在为C ++应用程序foo.exe编写代码。在应用程序内部,我想记录其地址空间使用情况。所以我想看的性能计数器是“\ Process(foo)\ Virtual Bytes”。我遇到的问题是系统上可能有多个foo.exe实例正在运行。在perfmon中,我可以看到它们被引用为“\ Process(foo#2)\ Virtual Bytes”,其中#2可以是任何数字,具体取决于进程数。

如何构造一个计数器路径来获取当前进程的虚拟字节,以处理存在多个进程实例的情况?

2 个答案:

答案 0 :(得分:4)

您的实例是具有与您当前进程ID匹配的ID Process计数器值的实例。不幸的是,除了获取所有实例并通过它们进行枚举之外别无其他方法,直到你找到属于你的实例,但这是相当微不足道的。

答案 1 :(得分:1)

如果您想要的只是流程的虚拟字节(或其他内存统计信息),则使用GetProcessMemoryInfo会更加容易,如How to determine a process "virtual size" (WinXP)?中所述。