是否可以流式传输 IGenericEvents 而不是缓冲?
Is it possible to stream IGenericEvents rather than buffering?
使用跟踪处理库,是否可以按照 here 所述使用流式处理从 .etl
文件中解析 IGenericEvents?
(我是 Microsoft 的一名开发人员,从事 TraceProcessor 项目。)
当前的实现不可能做到这一点。它对用户来说是 transparent/irrelevant 但在 TraceProcessor 中使用非流式数据源,一些数据是通过直接在 TraceProcessor 中解析 ETW 事件和状态模型来提供的,而其他数据是在NET/managed TraceProcessor 投影在 Xperf. Likewise, the current implementation of the Windows Performance Analyzer (WPA) 完成的 native/C++ ETW 处理之上的形式使用 TraceProcessor 作为其某些表的数据源,而 Xperf 作为其他表的源.
为了在 TraceProcessor 的当前实现中支持流式访问,必须编写数据源 A) 完全在 TraceProcessor 中(即不在 Xperf 中),以及 B) 专门用于支持流式处理。我们通常只在添加 Xperf 中尚不可用的新数据时,或者当我们有其他原因对数据源进行重大重写时才添加此支持。
TraceProcessor 中的通用事件支持目前构建在 Xperf 支持之上,部分原因是需要一些复杂的逻辑来解析一次跟踪中事件字段的模式,然后填充 IGenericEvents 在下一关。
我们目前没有投资流媒体版本的通用事件的计划,但如果您特别感兴趣,可以在我们的 issues repo on Github 中创建问题,如果计划有变,我们会及时通知您.
使用跟踪处理库,是否可以按照 here 所述使用流式处理从 .etl
文件中解析 IGenericEvents?
(我是 Microsoft 的一名开发人员,从事 TraceProcessor 项目。)
当前的实现不可能做到这一点。它对用户来说是 transparent/irrelevant 但在 TraceProcessor 中使用非流式数据源,一些数据是通过直接在 TraceProcessor 中解析 ETW 事件和状态模型来提供的,而其他数据是在NET/managed TraceProcessor 投影在 Xperf. Likewise, the current implementation of the Windows Performance Analyzer (WPA) 完成的 native/C++ ETW 处理之上的形式使用 TraceProcessor 作为其某些表的数据源,而 Xperf 作为其他表的源.
为了在 TraceProcessor 的当前实现中支持流式访问,必须编写数据源 A) 完全在 TraceProcessor 中(即不在 Xperf 中),以及 B) 专门用于支持流式处理。我们通常只在添加 Xperf 中尚不可用的新数据时,或者当我们有其他原因对数据源进行重大重写时才添加此支持。
TraceProcessor 中的通用事件支持目前构建在 Xperf 支持之上,部分原因是需要一些复杂的逻辑来解析一次跟踪中事件字段的模式,然后填充 IGenericEvents 在下一关。
我们目前没有投资流媒体版本的通用事件的计划,但如果您特别感兴趣,可以在我们的 issues repo on Github 中创建问题,如果计划有变,我们会及时通知您.