Где я могу найти документацию по публикации данных в perfmon на C++?

Несколько лет назад я написал некоторый код для публикации данных для потребления perfmon. Использование этих счетчиков довольно хорошо задокументировано, но мне было сложно найти (на тот момент) хорошую документацию и пример кода для публикации данных для perfmon.

Кто-нибудь знает, где я могу получить эту документацию? Я также, кажется, припоминаю некоторые обёртки классов, но могу ошибаться.


РЕДАКТИРОВАТЬ:

Я нашел это, и я буду продолжать искать пользовательские счетчики производительности приложений.


person Tim    schedule 19.05.2009    source источник
comment
К сожалению, я отредактировал ваш вопрос одновременно с вами, и это все испортило. Я откатил его, чтобы снова отредактировать.   -  person Zifre    schedule 20.05.2009


Ответы (2)


Вы возвращаете старые воспоминания!

В 1998 году Джеффри Рихтер написал статью в Microsoft Systems Journal, в которой описывался, как создавать ваши собственные счетчики производительности, это очень просто (после вырезания и вставки кода его шаблона просто добавьте переменные с общей памятью в dll и обновите их по мере необходимости).

person gbjbaanb    schedule 19.05.2009
comment
это именно тот, на который я должен был ссылаться много лет назад. Спасибо - person Tim; 20.05.2009

Вы ищете управляемые или нативные оболочки? Ссылка, которую вы разместили, управляется, но ваш вопрос является родным (С++). В управляемом мире довольно легко и просто публиковать счетчики с помощью PerformanceCounter и его родственников http://msdn.microsoft.com/en-us/library/system.diagnostics.performancecounter.aspx. Для умеренных объемов их также можно использовать для чтения счетчиков, для больших объемов вы должны использовать PDH.DLL, так как накладные расходы управляемых счетчиков, считывающих один счетчик за раз, по моему опыту, будут огромными. Лично я разработал преобразования XSLT для генерации всех счетчиков prfmon в своих приложениях, я написал об этом в блоге здесь: http://rusanu.com/2009/04/11/using-xslt-to-generate-performance-counters-code/ и у меня есть еще материал для блог вниз по трубе. Если ваш вопрос касается неуправляемого API, у меня нет удобного указателя, но лично я бы пошел по пути повторного использования XSLT для генерации всего моего кода perfmon, так как большая его часть повторяется.

person Remus Rusanu    schedule 19.05.2009
comment
вы правы - я хочу нативную, хотя могу и управляемую, если все так просто. - person Tim; 20.05.2009