Счетчик производительности и ETW

Являются ли счетчики производительности частью ETW? Если нет, то в чем разница между ними?


person imak    schedule 01.02.2011    source источник


Ответы (2)


Счетчики производительности и ETW — это разные технологии. Счетчики производительности не доступны через ETW.

Основное отличие: счетчики производительности предоставляют высокоуровневые показатели поведения системы (вспомните таймеры, количество прочитанных байтов и выделенных объектов), в то время как ETW представляет собой средство диагностической трассировки и регистрации (вспомните Debug.WriteLine сообщения, но более подробные и структурированные).

В настоящее время и ETW, и счетчики производительности полностью поддерживаются Windows, и как разработчик вы можете написать код для создания и использования данных для обеих технологий.

Счетчики производительности

счетчики производительности, также известные как PDH ( Счетчики Performance Data Helper) — это простые числовые показатели, дающие сводную информацию высокого уровня о том, как ведет себя конкретная система. Например, % Processor Time — это счетчик производительности, который сообщает вам, сколько времени процессора используется для выполнения кода пользовательского режима. В качестве более сложного примера, # of Methods Jitted в категории .NET CLR Jit указывает, сколько методов .NET было скомпилировано JIT с момента запуска приложения.

Счетчики производительности обычно используются для мониторинга работоспособности системы и диагностики конкретных проблем с производительностью. Они являются хорошим индикатором проблем, когда что-то идет не так, но они не дают подробностей о том, почему возникает конкретная проблема.

Чтобы просмотреть счетчики производительности Windows, вы можете просто запустить perfmon. В Vista+ вам может потребоваться щелкнуть узел «Монитор производительности», чтобы увидеть диаграмму счетчика. Чтобы программно получить доступ к счетчикам производительности, просмотрите класс System.Diagnostics.PerformanceCounter. в .NET или в библиотеке PDH для родной код.

Отслеживание событий для Windows (ETW)

ETW — это система отслеживания, встроенная в Windows. По сути, любой компонент (например, пользовательское приложение или даже само ядро ​​Windows) может отправлять диагностическую трассировочную информацию о конкретных происходящих событиях, о которых заботится этот компонент. Например, ядро ​​отправляет события ETW при запуске и остановке процесса, при загрузке и выгрузке образа (например, DLL), при создании или уничтожении потока или даже при переключении контекста в потоке. Зарегистрированные данные представлены в сериализованном формате, который описан компонентом в другом месте, что позволяет диагностическим средствам считывать и понимать события ETW, зарегистрированные во время сеанса. См. здесь диаграмму блоков и линий. того, как все работает вместе.

ETW должен быть быстрым и не должен существенно влиять на производительность системы, когда ведение журнала не включено. Начиная с Vista, ETW широко используется в Windows и предназначено для использования разработчиками приложений (это означает, что ваше приложение может быть поставщиком ETW, который регистрирует события). ETW является основой для журнала событий и может использоваться профилировщиками производительности, отладчиками или системными мониторами.

См. мой другой пост SO здесь для некоторых ресурсов по взаимодействие с ETW.

person Chris Schmich    schedule 02.02.2011

Казалось бы, на основе этого документа, начиная с Vista+ счетчики производительности имеют фасад ETW, поэтому их можно использовать точно так же, как ETW.

Новая библиотека счетчиков производительности (PERFLIB версии 2.0), входящая в состав Windows Vista®, предлагает разработчику ряд преимуществ, в том числе:

Стандартный механизм межпроцессного взаимодействия (IPC) между поставщиком и потребителем, основанный на уведомлении Event Tracing for Windows (ETW) и обеспечивающий упрощенную разработку и более унифицированный и надежный код.

введите здесь описание изображения

person Aaron Stainback    schedule 27.02.2013