chrome://tracing 性能分析神器

在Soc性能分析的时候,往往需要看一些master或slave的busy / idle状态占比,如果能像看波形那样看到各个master/slave在各个时间段的状态,这样可以非常直观地看出性能瓶颈点。

Chrome提供了一个可视化的trace viewer工具就可以达到这样的效果。

参考https://limboy.me/2020/03/21/chrome-trace-viewer/

在chrome浏览器中输入chrome://tracing/即可打开此工具,然后load你的json文件,就可以查看波形了。Json文件的格式,还可以参考https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/edit#

如下的一个示例中,

"name""休息",  // 事件名,会展示在 timeline 上

 "cat""测试",  // 事件分类,类似 Tag,会在选中一个事件的时候,在下方选项卡中显示

 "ph""X", // phase,常用的有B / E / X / M,分别表示begin /end / complete / metadata event

 "ts"0,  //事件 开始发生的时刻点

"pid"0,  // process id

"tid"1, // thread id

"dur"28800000000, // duration,跟 phase X 搭配使用,表示事件的持续时间

"args": {"duration_hour"8"start_hour"0}} // 附加参数,在选中一个事件的时候,在下方选项卡中显示

 

注意:

1.  ts 和dur 的时间单位为 微秒(us)。

2. 如果phase为M,则name只能为以下5个中的一个。

chrome://tracing 性能分析神器_第1张图片

[
    {"name": "休息", "cat": "测试", "ph": "X", "ts": 0, "pid": 0, "tid": 1, "dur": 28800000000, "args": {"duration_hour": 8, "start_hour": 0}},  
    {"name": "学习", "cat": "测试", "ph": "X", "ts": 28800000000, "pid": 0, "tid": 1, "dur":3600000000 , "args": {"duration_hour": 1, "start_hour": 8}},

    {"name": "休息", "cat": "测试", "ph": "X", "ts": 0, "pid": 0, "tid": 2, "dur": 21600000000} ,

    {"name": "process_name", "ph": "M", "pid": 0, "args": {"name": "一周时间管理"}},
    {"name": "thread_name", "ph": "M", "pid": 0, "tid": 1, "args": {"name": "第一天"}},
    {"name": "thread_name", "ph": "M", "pid": 0, "tid": 2, "args": {"name": "第二天"}}
]

有些时候,会看到在json文件开始的时候有"displayTimeUnit",文档中将可以选择ms ns,但试了一下,好像ts duration的时间单位依然是us

{"displayTimeUnit""ms""traceEvents":[

…..

]}

chrome://tracing 性能分析神器_第2张图片

你可能感兴趣的:(instrument,trace)