【问题标题】:Is it possible to stream IGenericEvents rather than buffering?是否可以流式传输 IGenericEvents 而不是缓冲?
【发布时间】:2020-04-27 23:42:13
【问题描述】:

使用跟踪处理库,是否可以使用here 中描述的流来解析.etl 文件中的 IGenericEvents?

【问题讨论】:

    标签: .net-traceprocessing


    【解决方案1】:

    (我是 Microsoft 的一名开发人员,从事 TraceProcessor 项目的工作。)

    这在当前的实现中是不可能的。它意味着对用户透明/无关,但在 TraceProcessor 中使用非流数据源,一些数据可以通过直接在 TraceProcessor 中解析 ETW 事件和状态模型来获得,而其他数据以以下形式提供:在 Xperf 完成的本机/C++ ETW 处理之上的 .NET/托管 TraceProcessor 投影。同样,Windows Performance Analyzer (WPA) 的当前实现使用 TraceProcessor 作为其某些表的数据源,而 Xperf 作为其他表的源。

    为了在 TraceProcessor 的当前实现中支持流式访问,必须将数据源写入 A) 完全在 TraceProcessor 中(即不在 Xperf 中)和 B) 专门用于支持流式传输。我们通常仅在添加 Xperf 中尚不可用的新数据时添加此支持,或者当我们有其他原因需要对数据源进行重大重写时。

    TraceProcessor 中的通用事件支持目前是在 Xperf 支持之上构建的,部分原因是需要一些复杂的逻辑来在一次跟踪中解析事件字段的模式,然后填充 IGenericEvents在下一关。

    我们目前没有计划投资通用事件的流媒体版本,但如果您特别感兴趣,可以在我们的issues repo on Github 中创建问题,如果计划发生变化,我们会及时通知您。

    【讨论】:

      猜你喜欢
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 2013-01-23
      • 2016-07-14
      相关资源
      最近更新 更多