WEB开发网
开发学院操作系统Windows Vista 使用 ETW 改善调试和性能优化 阅读

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

 2008-11-17 17:39:25 来源:WEB开发网   
核心提示: 需要考虑到应用程序活动的响应时间和 CPU 使用率的统计数据,如果两个事件分别标记了一个活动的起点和终点,使用 ETW 改善调试和性能优化(6),就可以采取这种方式处理从实际工作模式的应用程序收集来的大量事件,以生成有关响应时间和 CPU 使用率统计数据的摘要,并存储会话句柄,随后,统计分

需要考虑到应用程序活动的响应时间和 CPU 使用率的统计数据。如果两个事件分别标记了一个活动的起点和终点,就可以采取这种方式处理从实际工作模式的应用程序收集来的大量事件,以生成有关响应时间和 CPU 使用率统计数据的摘要。

统计分析 有时,仅对特定事件的数量进行计数可以使我们对软件行为有更深入的了解。

状态机和资源跟踪 拥有足够的事件,就可以构造状态机,从而可以进行基于跟踪的模拟。例如,由于核心操作系统的大部分活动是使用 ETW 事件进行检测的,因此可使用操作系统跟踪构建状态机,以跟踪计划程序、内存和 I/O 活动等。

统一的事件提供程序模型和 API

在 Windows Vista 中,我们引入了一组新的事件提供程序 API,不仅更易于使用,而且可提供更多功能和增强的安全选项。新的 API 还可用于向事件查看器写入事件,并将跟踪与事件日志结合成一个一致的 API 集。本部分将为您更加详细地介绍这些 API 和模型。如果有需要,还会介绍新 API 与现有 API 的不同之处。

软件组件要想成为 ETW 提供程序,需要通过 EventRegister API 向 ETW 注册。EventRegister 需要一个名为 ProviderID 的 GUID,用于唯一地标识提供程序。任何软件实体(应用程序、共享的 DLL 或驱动程序)都可以注册为提供程序,因为提供程序不必绑定到任何操作系统实体。注册过程通常在组件的入口点完成,例如一个 DLL 附加例程或一个驱动程序入口点。返回的注册句柄用于接下来的日志记录 API 调用。最后,在提供程序执行结束后会调用 EventUnregister。

利用现有的提供程序 API,提供程序必须提供回调以启用/禁用通知。也就是说,如果控制器启用了提供程序,则要用启用设置来调用已注册的回调函数。该回调函数的参数之一是启用提供程序的会话的句柄。一旦收到启用回调,提供程序会设置一个全局变量(例如 TracingOn)以表明跟踪处于开启还是关闭状态,并存储会话句柄。随后,提供程序将从回调函数获得的会话句柄用于日志记录 API 调用(按条件基于 TracingOn 的值)。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:使用 ETW 改善

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接