使用etw改善调试和性能优化

使用etw改善调试和性能优化

ID:30448074

大小:104.79 KB

页数:19页

时间:2018-12-30

使用etw改善调试和性能优化_第1页
使用etw改善调试和性能优化_第2页
使用etw改善调试和性能优化_第3页
使用etw改善调试和性能优化_第4页
使用etw改善调试和性能优化_第5页
资源描述:

《使用etw改善调试和性能优化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、使用ETW改善调试和性能优化作者:史莱姆发表于2010-07-0201:11原文链接阅读:1评论:0事件跟踪使用ETW改善调试和性能优化Dr.InsungParkandRickyBuch本文讨论:了解ETW体系结构WindowsVista中ETW的新功能使用事件提供程序API进行编程本文使用了以下技术:WindowsVista目录Windows事件跟踪统一的事件提供程序模型和API设计和实现指南工具和支持总结目前的软件系统变得日益庞大和复杂,软件的开发和管理随之成为一项艰巨的挑战。几乎不可能对所有执行状态做出说明,应用程序所表现的行为也经常出乎开发者的意料之

2、外。此外,大量硬件组合和工作负载特征的不断变化也增加了各种软件故障诊断的难度。因此,可靠性和可管理性本身成为重要功能也就不足为奇了。而正是这些功能催生了对检测的需求。在软件执行过程中,针对某些关键的错误状态添加的智能检测手段可以极大地缩短故障的调试时间。在其他某些方面,检测也是非常实用的。在托管的企业环境中,必须对大量计算机的软硬件故障和资源数量偏低等不良情况进行监视并采取措施。此外,检测还非常有助于解决性能问题,因为性能问题对于外部的工作负载、配置参数以及底层硬件和软件状态十分敏感,所以诊断起来比较困难。当性能有所下降时,开发人员和管理员能够根据实际工作环

3、境的跟踪结果确定性能不佳的组件或服务,或者发现开发阶段未预见到的瓶颈。最后,IT专家可以使用各种管理工具从事务跟踪中得出资源使用率的统计数据,以用于容量规划和趋势分析。Windows事件跟踪(ETW)是操作系统提供的一个高速通用的跟踪工具。ETW使用内核中实现的缓冲和日志记录机制,提供对用户模式应用程序和内核模式设备驱动程序引发的事件的跟踪机制。此外,ETW使您能够动态地启用和禁用日志记录,轻松地在实际生产环境下进行详细跟踪,而无需重新启动系统或重新启动应用程序。日志记录机制使用每处理器的缓冲区,由异步写线程将这些缓冲区写入磁盘。这样,大型服务器应用程序在写

4、入事件时所受的干扰能够降至最小。最初引入ETW的操作系统是Windows2000。自此开始,各种核心的操作系统和服务器组件开始纷纷采用ETW对其活动进行检测。现在,ETW已成为Windows平台中的主要检测技术之一。越来越多的第三方应用程序也开始采用ETW进行检测,有些则利用Windows自身提供的事件。ETW还被提取到Windows预处理器(WPP)软件跟踪技术中,为跟踪"printf"样式的消息提供了一组简单易用的宏,以便用于开发过程中的调试。在WindowsVista上,ETW发生了改头换面的变化,其中最重大的变化之一就是引入了统一的事件提供程序模型和

5、API。简而言之,新的统一API对跟踪结果进行日志记录并将结果写至事件查看器,为事件提供程序提供了一种一致的、简单易用的机制。同时,还添加了一些用于改善开发人员和用户体验的新功能。在本文中,我们将介绍新的ETW提供程序模型,并为大家讲解开发人员应如何在基于WindowsVista的应用程序中采用这一新模型。首先要对ETW体系结构和使用模型进行概述,然后再讲解新的事件模型和API。接下来对事件检测的设计和实现进行简要介绍,最后再了解用于控制ETW会话、处理所记录事件并分析这些事件以生成更高一级报告的随机工具。Windows事件跟踪ETW的核心体系结构如图1所示

6、。如图所示,ETW主要包含四种类型的组件:事件提供程序、控制器、使用者和事件跟踪会话。事件跟踪会话中会发生缓冲和日志记录,此会话用于接受事件并创建一个跟踪文件。ETW会话可以使用多种日志记录模式。例如,可以对会话进行配置,直接向使用者应用程序传送事件,或在文件达到特定大小时通过回绕在某个文件中重写旧事件。为每个会话创建的单独写线程会将这些事件刷新到文件或实时使用者应用程序中。要实现高性能,可以使用每服务器的缓冲区,这样无需在日志记录路径中设置锁定。图1ETW体系结构(单击该图像获得较大视图)事件提供程序指的是一种可以将事件写入ETW会话的逻辑实体。任何可记录

7、的重要活动均可作为事件,每个活动由记录到ETW中的一个事件表示。事件提供程序可以是用户模式应用程序、托管应用程序、驱动程序或任何其他软件实体。唯一的要求是,事件提供程序必须通过注册API向ETW注册一个提供程序ID。提供程序首先向ETW注册,然后调用ETW日志记录API写入来自代码内多个点的事件。当ETW控制器应用程序动态启用提供程序时,对日志记录API的调用将事件发送给控制器指定的特定跟踪会话。事件提供程序发送给跟踪会话的每个事件由一个包含事件元数据和其他可变用户上下文数据的固定标头构成。由于很多操作系统组件中事件检测的不断增多,因此就连为WindowsV

8、ista设计的一个简单程序也将包含多个事件提供程序作

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。