一搜火焰图,都是介绍linux上的工具,今天看到Windows Performance Analyzer (WPA) ,在性能套装工具里,真是太便利了。
Flame graph 又叫 火焰图。 这种图表的优势是能够直观的表达:父子关系、时间长短。 在 WPA 的 Flame By Process Stack 图表中,展现的是每个进程中比较耗时的调用栈。注意这里不是每一个时刻的调用栈,而是tracing这段时间内的所有调用栈中,选出来的最耗时的几个。利用火焰图展示出来。 例如在下图中,x轴表示时间,y轴表示的是调用栈的深度。 每一条横杠表示的就是一个调用函数,越底部的表示在调用栈底部,越上面的表示越接近调用栈的栈顶。 从图中可以看出这么几个信息: 这段时间内最深的调用栈在哪。看图中哪里最高,哪里就是最深的调用栈。 哪个调用栈最耗时。看图表底部哪个函数延续了最长时间,那么这个调用栈也就耗费最长。
winsdksetup.exe
https://download.microsoft.com/download/E/1/B/E1B0E6C0-2FA2-4A1B-B322-714A5586BE63/windowssdk/winsdksetup.exe
UIforETW
https://github.com/google/UIforETW/releases
Windows Performance Analyzer (WPA)
https://docs.microsoft.com/zh-cn/windows-hardware/test/wpt/windows-performance-analyzer
Flame By Process Stack
http://sssa2000.github.io/2017/05/02/wpt-cpu-sampled/