(я являюсь разработчиком в Microsoft, который работает над проектом TraceProcessor.)
Я немного больше знаком с TraceEvent, чем с ETW2 JSON, но в обоих случаях применяется один и тот же ответ.
Каждая из них была разработана различными организациями в рамках Microsoft для лучшей поддержки наших собственных исследований производительности и диагностики c. В некоторых случаях мы черпали вдохновение или подсказки для TraceProcessor из других библиотек, но в основном мы разработали его для наших конкретных c вариантов использования и в соответствии с нашими собственными принципами проектирования.
Эти различия означают, что каждая библиотека имеет свои собственные принципы о производительности, дизайне / согласованности API и широкой поддержке ETW в сравнении с хорошо развитой первоклассной поддержкой для определенных специфических вещей. c.
TraceEvent действительно имеет поддержку .NET / CLR, но основное внимание уделяется тому, чтобы быть управляемой оболочкой для API C ++ ETW. Он поддерживает другие события, но очень ограничен.
В целом, TraceEvent отлично подходит для первоклассных данных .NET / CLR и "основ" в других местах.
TraceProcessor дает сильные первоклассная поддержка типов системы и диагностических данных c, которые можно увидеть в других инструментах, таких как XPerf и WPA . Мы стремились к чистому, согласованному, производительному API во всей библиотеке и подчеркивали строгую типизацию для представления каждого типа данных в наиболее естественной форме.