我的同事提到 CLR 4.0 中有一些与Windows 事件跟踪相关的重大改进,但我无法找到有关新功能的详细信息。很少有博客文章只提到改进,但没有提供任何关于究竟是什么新功能的细节。有人对它有更深入的了解吗?
3 回答
这是 CLR 4.0 中的 ETW 事件列表
- 运行时信息 ETW 事件
- Exception Throw_V1 ETW 事件
- 争用 ETW 事件
- 线程池 ETW 事件
- 加载程序 ETW 事件
- 方法 ETW 事件
- 垃圾收集 ETW 事件
- JIT 跟踪 ETW 事件
- 互操作 ETW 事件应用程序
- 域资源监控 (ARM) ETW 事件
- 安全 ETW 事件
- 堆栈 ETW 事件
有关这些的详细说明,您可以在msdn中阅读它们
而且 XPERF 也无法使用 ETW 解码托管堆栈,因此 BCL 团队在 codeplex 中发布了另一个工具,称为Perfmonitor可以使用。
高温高压
- 应用程序域资源监控可通过托管和本机托管 API 以及 Windows 事件跟踪 (ETW) 获得。
- 您现在可以访问 ETW 事件以进行诊断以提高性能。
http://msdn.microsoft.com/en-us/library/ms171868.aspx#core_new_features_and_improvements
如果您在上面的某些链接中进行挖掘,您可能会发现两个改进是一个新的EventProviderTraceListener类和一个新的EventProvider类。
EventProviderTraceListener 可以侦听 TraceSource(与任何其他 TraceListener 一样)并将 TraceSource 消息路由到 ETW 系统。
EventProvider 类允许您将消息直接记录到 ETW 系统。
这些类仅在 Vista 和更高版本上可用(实际上,它们在 .NET 框架 4.0 中“可用”在您使用的任何级别的操作系统上,但它们不适用于 XP 和更低版本)。
我没有使用过这些类中的任何一个(也没有使用过 ETW),但在我看来,它们使从 .NET 应用程序中使用 ETW 变得更加容易。如果您想使用 ETW,您仍然需要完成一些工作来配置 ETW 本身。
这是一篇介绍如何使用 ETW 的文章。我不确定是否有更多关于 ETW 的最新信息。请注意,本文是在新的 .NET ETW 类可用之前编写的。