6

我一直在研究在现有后端/服务器应用程序中使用Windows 事件跟踪(ETW)。MSDN 和其他来源已经出售了框架的强大功能及其与xperf等的集成,坦率地说,我对此印象深刻。

但是,我有点担心 Win32 API 和使用清单编码编译/注册等的开销。

亲们,你们:

  • 推荐它?在您的系统中使用它有问题吗?
  • 知道更多 C++/STL 风格的包装器吗?
  • 是否有管理清单文件的工具?
4

2 回答 2

6

我建议使用 WPP,而不是直接使用 Win32 API。

WPP 是一个预处理器,它允许您在代码中的任何位置编写类似 printf 的跟踪行,并获得这些结果以及附加数据(例如,传递给跟踪中的各种 %d 和 %s 的参数)登录到 ETW。

这方面的明确指南是Visual C++ 2010 项目中的 WPP 跟踪

于 2011-06-19T13:06:40.580 回答
2

一方面,ETW 非常强大。但与此同时,它也不是那么容易开始的。

但是,GitHub 上有一个项目可以简化编写您自己的 ETW 提供程序。这是一个很好的写作例子:

  • ETW 清单 (.man) 以公开事件字段
  • WP R profile (.wprp) 教 WPRUI (recorder) 关于你的 profiler
  • WP配置文件(.wpaProfile) 和感兴趣区域 (.xml),用于向 WPA 教授您的数据表示。

请查看英特尔单事件 API (SEAPI) wiki

于 2015-11-28T19:01:27.683 回答