Поддержка добавления счетчиков производительности C ++ изменена в Vista и более поздних версиях. Подход Performance DLL, предложенный в другом ответе, все еще работает, но новый метод, описанный здесь , проще в использовании.
В этом подходе вы пишете манифест, который описывает ваши счетчики, запускаете CTRPP, инструмент, который генерирует код из вашего манифеста. Скомпилируйте и свяжите этот код с вашим приложением, добавьте вызов для инициализации процесса (он запускает фоновый поток) и добавьте код для обновления счетчиков по мере необходимости. Детали публикации счетчиков обрабатываются фоновым потоком, выполняющим сгенерированный код.
Вам также нужно запустить lodctr / m: [файл манифеста], чтобы зарегистрировать ваши счетчики, прежде чем их можно будет использовать. Это должно быть запущено от имени администратора.
Кстати: другая программа, unlodctr, отменяет действие lodctr и должна использоваться, если вы вносите какие-либо изменения в свои счетчики, поскольку нет операции «заменить», только удалите старую, а затем установите новую.
Документация для всего вышеперечисленного просто ужасна. Например, lodctr был полностью переработан для Vista, но документ в MSDN предназначен только для версии XP и больше не применяется. Если вы посещаете MSDN, пожалуйста, используйте кнопку «Эта документация бесполезна», и, возможно, Microsoft получит сообщение.