Как получить счетчик производительности Windows для текущего процесса - PullRequest
3 голосов
/ 08 декабря 2010

Я пишу код для C ++ приложения foo.exe. Внутри приложения я хочу регистрировать использование его адресного пространства. Итак, счетчик производительности, на который я хочу посмотреть, это «\ Process (foo) \ Virtual Bytes». Проблема, с которой я сталкиваюсь, заключается в том, что в системе может быть запущено несколько экземпляров foo.exe. В perfmon я вижу, что на них ссылаются как «\ Process (foo # 2) \ Virtual Bytes», где № 2 может быть любым числом в зависимости от количества процессов.

Как я могу построить встречный путь для получения виртуальных байтов для текущего процесса, который обрабатывает случай, когда есть несколько экземпляров процесса?

Ответы [ 2 ]

4 голосов
/ 08 декабря 2010

Ваш экземпляр имеет значение счетчика ID Process, соответствующее вашему текущему идентификатору процесса. К сожалению, нет другого способа, кроме как получить все экземпляры и перечислить их, пока вы не найдете экземпляр, который принадлежит вам, но это довольно тривиально.

1 голос
/ 08 декабря 2010

Если вам нужны только виртуальные байты (или другая статистика памяти) для вашего процесса, гораздо проще использовать GetProcessMemoryInfo , как описано в Как определить «виртуальный размер» процесса WinXP) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...