最近这几天在帮柠檬看她的APM系统要如何收集.Net运行时的各种事件, 这些事件包括线程开始, JIT执行, GC触发等等. .Net在windows上(NetFramework, CoreCLR)通过ETW(Event Tracing for Windows), 在linux上(CoreCLR)是通过LTTng跟踪事件. ETW的API设计已经被很多人诟病, 微软推出的类库krabsetw中直指ETW是最差的API并且把操作ETW的文件命名为噩梦.hpp. 而且这篇文章中, Casey Mur