Возможно ли потоковое IGenericEvents вместо буферизации? - PullRequest
1 голос
/ 28 апреля 2020

Используя библиотеку обработки трассировки, возможно ли использовать потоковую передачу, как описано здесь , для анализа IGenericEvents из файла .etl?

1 Ответ

2 голосов
/ 28 апреля 2020

(я разработчик в Microsoft, работающий над проектом TraceProcessor.)

Это невозможно в текущей реализации. Предполагается, что он прозрачен / не имеет значения для пользователей, но с использованием потоковых источников данных в TraceProcessor, некоторые данные становятся доступными путем анализа событий ETW и моделей состояний непосредственно в TraceProcessor, а другие данные доступны в виде .NET / управляемая проекция TraceProcessor поверх нативной обработки / C ++ ETW, выполняемой Xperf . Аналогично, текущая реализация Windows Performance Analyzer (WPA) использует TraceProcessor в качестве источника данных для некоторых из своих таблиц и Xperf в качестве источника для других.

В порядке для поддержки потокового доступа в текущей реализации TraceProcessor источник данных должен быть записан как A) полностью в TraceProcessor (т.е. не в Xperf), так и B) специально для поддержки потоковой передачи. Обычно мы добавляли эту поддержку только при добавлении новых данных, которые еще не были доступны в Xperf, или когда у нас были другие причины сделать основную переписку источника данных.

Generi c Поддержка событий в TraceProcessor в настоящее время построен на основе поддержки Xperf, отчасти потому, что есть некоторые сложные логики c, необходимые для анализа схем для полей событий за один проход трассировки, а затем для заполнения IGenericEvent s в следующий этап.

В настоящее время у нас нет планов инвестировать в потоковую версию событий generi c, но если вас это особенно заинтересовало, вы можете создать проблему в нашем репозитории Github и мы можем держать вас в курсе, если планы изменятся.

...