性能计数器与ETW

性能计数器是ETW的一部分吗?如果没有,两者有什么区别?     
已邀请:
性能计数器和ETW是不同的技术。性能计数器不通过ETW公开。 基本区别:性能计数器提供系统行为的高级指标(考虑定时器和读取的字节数以及分配的对象),而ETW是诊断跟踪和记录工具(想想
Debug.WriteLine
消息,但更丰富,更结构化)。 目前,ETW和性能计数器都得到了Windows的全力支持,作为开发人员,您可以编写代码来生成和使用这两种技术的数据。 性能计数器 性能计数器(也称为PDH(性能数据助手)计数器)是简单的数字度量标准,可为您提供特定系统行为方式的高级摘要。例如,
% Processor Time
是一个性能计数器,它告诉您处理器用于执行用户模式代码的时间。作为一个更复杂的例子,
.NET CLR Jit
类别中的
# of Methods Jitted
告诉您自应用程序启动以来有多少.NET方法是JIT编译的。 性能计数器通常用于监视系统运行状况并诊断特定的性能问题。当出现严重错误时,它们是问题的良好指标,但它们并没有详细说明为什么会发生特定问题。 要查看Windows性能计数器,只需运行
perfmon
即可。在Vista +上,您可能需要单击“性能监视器”节点才能查看计数器图表。要以编程方式访问性能计数器,请查看.NET中的
System.Diagnostics.PerformanceCounter
类或本机代码的PDH库。 Windows事件跟踪(ETW) ETW是Windows内置的跟踪系统。实质上,任何组件(例如用户应用程序,甚至Windows内核本身)都可以发出有关组件关注的特定事件的诊断跟踪信息。例如,内核在进程启动和停止时,在加载和卸载图像(例如DLL)时,在创建或销毁线程时,或者甚至在线程执行上下文切换时发送ETW事件。记录的数据采用序列化格式,由其他组件描述,允许诊断工具读取和理解会话期间记录的ETW事件。请参阅此处,了解一切如何协同工作的方框图。 ETW意味着速度快,并且在未启用日志记录时不应对系统的性能产生重大影响。从Vista开始,ETW遍布整个Windows,旨在供应用程序开发人员使用(具体而言,您的应用程序可以是记录事件的ETW提供程序)。 ETW是事件日志的基础,可供性能分析器,调试器或系统监视器使用。 在这里查看我的其他SO帖子,了解与ETW接口的一些资源。     
似乎基于此文档从Vista +开始,性能计数器具有ETWFaçade,因此它们可以与ETW完全相同的方式使用。 WindowsVista®附带的新性能计数器库(PERFLIB 2.0版)为开发人员提供了许多优势,包括: 提供者和使用者之间的标准进程间通信(IPC)机制,它基于Windows事件跟踪(ETW)通知,从而简化了开发,提供了更加统一和可靠的代码。     

要回复问题请先登录注册