使用 ETW 改善调试与性能优化.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用 ETW 改善调试与性能优化

使用 ETW 改善调试和性能优化 作者:史莱姆发表于2010-07-02 01:11原文链接阅读:1评论:0 事件跟踪使用ETW改善调试和性能优化Dr.Insung Park and Ricky Buch 本文讨论: 了解ETW体系结构Windows Vista中ETW的新功能使用事件提供程序API进行编程本文使用了以下技术:Windows Vista 目录Windows事件跟踪统一的事件提供程序模型和API设计和实现指南工具和支持总结目前的软件系统变得日益庞大和复杂,软件的开发和管理随之成为一项艰巨的挑战。几乎不可能对所有执行状态做出说明,应用程序所表现的行为也经常出乎开发者的意料之外。此外,大量硬件组合和工作负载特征的不断变化也增加了各种软件故障诊断的难度。因此,可靠性和可管理性本身成为重要功能也就不足为奇了。而正是这些功能催生了对检测的需求。在软件执行过程中,针对某些关键的错误状态添加的智能检测手段可以极大地缩短故障的调试时间。在其他某些方面,检测也是非常实用的。在托管的企业环境中,必须对大量计算机的软硬件故障和资源数量偏低等不良情况进行监视并采取措施。此外,检测还非常有助于解决性能问题,因为性能问题对于外部的工作负载、配置参数以及底层硬件和软件状态十分敏感,所以诊断起来比较困难。当性能有所下降时,开发人员和管理员能够根据实际工作环境的跟踪结果确定性能不佳的组件或服务,或者发现开发阶段未预见到的瓶颈。最后,IT专家可以使用各种管理工具从事务跟踪中得出资源使用率的统计数据,以用于容量规划和趋势分析。Windows事件跟踪(ETW)是操作系统提供的一个高速通用的跟踪工具。ETW使用内核中实现的缓冲和日志记录机制,提供对用户模式应用程序和内核模式设备驱动程序引发的事件的跟踪机制。此外,ETW使您能够动态地启用和禁用日志记录,轻松地在实际生产环境下进行详细跟踪,而无需重新启动系统或重新启动应用程序。日志记录机制使用每处理器的缓冲区,由异步写线程将这些缓冲区写入磁盘。这样,大型服务器应用程序在写入事件时所受的干扰能够降至最小。最初引入ETW的操作系统是Windows 2000。自此开始,各种核心的操作系统和服务器组件开始纷纷采用ETW对其活动进行检测。现在,ETW已成为Windows平台中的主要检测技术之一。越来越多的第三方应用程序也开始采用ETW进行检测,有些则利用Windows自身提供的事件。ETW还被提取到Windows预处理器(WPP)软件跟踪技术中,为跟踪printf样式的消息提供了一组简单易用的宏,以便用于开发过程中的调试。在Windows Vista上,ETW发生了改头换面的变化,其中最重大的变化之一就是引入了统一的事件提供程序模型和API。简而言之,新的统一API对跟踪结果进行日志记录并将结果写至事件查看器,为事件提供程序提供了一种一致的、简单易用的机制。同时,还添加了一些用于改善开发人员和用户体验的新功能。在本文中,我们将介绍新的ETW提供程序模型,并为大家讲解开发人员应如何在基于Windows Vista的应用程序中采用这一新模型。首先要对ETW体系结构和使用模型进行概述,然后再讲解新的事件模型和API。接下来对事件检测的设计和实现进行简要介绍,最后再了解用于控制ETW会话、处理所记录事件并分析这些事件以生成更高一级报告的随机工具。 Windows事件跟踪ETW的核心体系结构如图1所示。如图所示,ETW主要包含四种类型的组件:事件提供程序、控制器、使用者和事件跟踪会话。事件跟踪会话中会发生缓冲和日志记录,此会话用于接受事件并创建一个跟踪文件。ETW会话可以使用多种日志记录模式。例如,可以对会话进行配置,直接向使用者应用程序传送事件,或在文件达到特定大小时通过回绕在某个文件中重写旧事件。为每个会话创建的单独写线程会将这些事件刷新到文件或实时使用者应用程序中。要实现高性能,可以使用每服务器的缓冲区,这样无需在日志记录路径中设置锁定。 图1 ETW体系结构(单击该图像获得较大视图)事件提供程序指的是一种可以将事件写入ETW会话的逻辑实体。任何可记录的重要活动均可作为事件,每个活动由记录到ETW中的一个事件表示。事件提供程序可以是用户模式应用程序、托管应用程序、驱动程序或任何其他软件实体。唯一的要求是,事件提供程序必须通过注册API向ETW注册一个提供程序ID。提供程序首先向ETW注册,然后调用ETW日志记录API写入来自代码内多个点的事件。当ETW控制器应用程序动态启用提供程序时,对日志记录API的调用将事件发送给控制器指定的特定跟踪会话。事件提供程序发送给跟踪会话的每个事件由一个包含事件元数据和其他可变用户上下文数据的固定标头构成。由于很多操作系统组件中事件检测的不断增多,因此就连为Windows Vista设计的

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档