Мой коллега упомянул, что в CLR 4.0 внесены некоторые важные улучшения, связанные с отслеживанием событий для Windows, но я не удалось найти подробностей о том, что именно нового. Есть несколько сообщений в блогах, в которых упоминаются только улучшения, но не дается никаких подробностей о том, что именно нового. У кого-нибудь есть более глубокое понимание этого?
Какие именно новые функции ETW в CLR 4.0?
Ответы (3)
Вот список событий трассировки событий Windows в среде CLR 4.0.
- События ETW с информацией о среде выполнения
- Исключение Thrown_V1, событие трассировки событий Windows
- События трассировки событий Windows, связанные с конфликтом
- События ETW пула потоков
- События трассировки событий Windows для загрузчика
- События трассировки событий Windows метода
- События ETW сборки мусора
- JIT-трассировка событий ETW
- Приложение Interop ETW Events
- События ETW мониторинга ресурсов домена (ARM)
- События безопасности трассировки событий Windows
- Событие Stack ETW
Подробное объяснение этих вопросов можно найти в msdn.
Кроме того, XPERF не может декодировать управляемые стеки с помощью ETW, поэтому команда BCL выпустила еще один инструмент в кодовом комплексе под названием Perfmonitor, который может использоваться.
HTH
- Мониторинг ресурсов домена приложения доступен через управляемые и собственные API-интерфейсы хостинга и трассировку событий для Windows (ETW).
- Теперь вы можете получить доступ к событиям трассировки событий Windows в диагностических целях, чтобы повысить производительность.
http://msdn.microsoft.com/en-us/library/ms171868.aspx#core_new_features_and_improvements
Два улучшения, которые вы, вероятно, могли бы найти, покопавшись в некоторых из приведенных выше ссылок, - это новый EventProviderTraceListener и новый EventProvider.
EventProviderTraceListener может прослушивать TraceSources (как и любой другой TraceListener) и направлять сообщения TraceSource в систему ETW.
Класс EventProvider позволяет регистрировать сообщения непосредственно в системе ETW.
Эти классы доступны только в Vista и выше (фактически, они «доступны» в .NET framework 4.0 на любом уровне ОС, но они не работают в XP и ниже).
Я не использовал ни один из этих классов (и не использовал ETW), но мне кажется, что они значительно упрощают использование ETW из приложений .NET. Если вы хотите использовать ETW, вам еще предстоит поработать, чтобы настроить саму ETW.
Вот статья, в которой описывается, как использовать ETW. Я не уверен, есть ли более свежая информация об ETW или нет. Обратите внимание, что эта статья была написана до того, как стали доступны новые классы .NET ETW.