Trace解析能力增强

Trace解析能力增强主要是提高Trace的解析能力。

焦点问题trace切割,选择焦点trace,聚焦问题发生时间范围,单独打开

焦点问题切割是将现有的trace加载到界面时,对指定时间进行框选,截取框选时间范围内的trace数据通过跳转的方式去打开新的trace界面,新界面的trace数据就是按照这段时间范围去切割的。如下图框选一段时间范围,点击右上方的小剪刀图标对框选时间范围数据进行剪切。
GitHub Logo

超大trace分段打开,超大trace按照固定大小切割,分段打开显示

超大trace分段打开是对现有配置抓取的同一种时钟源数据源的。也就是配置命令下发的抓取有效。Htrace数据按照端侧切割的大小分成多个文件,并将不能切割的hiperf、ebpf、arkts的数据单独存储。IDE通过将这几种源文件数据存储在IndexedDB,并调用trace streamer去进行切割数据,并在IDE侧过滤筛选出切割的数据进行展示。

超大trace浏览器用户数据目录配置说明

由于大文件切割的数据是保存在浏览器的IndexedDb中,默认存储在系统盘,所以需要修改用户目录数据存放位置。

找到浏览器的exe执行文件位置(或者浏览器exe的快捷方式位置), 在cmd窗口执行以下命令(edge浏览器)
D:\deskTop\msedge.exe.lnk --user-data-dir=D:\Edgedata
	D:\deskTop\msedge.exe.lnk    浏览器的exe执行文件位置(或者浏览器exe的快捷方式位置)
	--user-data-dir=D:\Edgedata   指定用户目录数据位置,本地除系统盘外的位置都可以,内存尽量大一点
浏览器exe或者exe快捷方式目录和名称不能有带空格
错误:D:\desk Top\Microsoft Edge.exe.lnk --user-data-dir=D:\Edgedata
正确:D:\deskTop\MicrosoftEdge.exe.lnk --user-data-dir=D:\Edgedata
配置完成后, 查看【用户配置路径】是否是配置的路径
edge浏览器:     edge://version/

超大trace抓取配置说明

GitHub Logo

本地导入超大trace

本地导入超大trace是导入文件夹,将该文件夹中所有文件导入。如下图从Open long trace file入口导入。
GitHub Logo
本地导入以后,点击右上方的切页图标可以切页。
GitHub Logo

web端支持已打开的trace文件转换成systrace,并可下载

已打开的trace界面,增加convert to systrace按钮,支持将htrace和row trace转为systrace。
GitHub Logo

tracestreamer离线执行sql和metrics语句,对标trace_processor_shell –q和—run-metrics

trace_streamer_shell –q可以直接将sql查询结果显示在命令行里,如下图bytrace.ftrace是需要解析的文件,a.txt是sql语句。
GitHub Logo
trace_streamer_shell –m可以直接将metric接口的查询结果显示在命令行里,如下图bytrace.ftrace是需要解析的文件,trace_stats是metric接口名。
GitHub Logo

Hangs抓取和展示说明

挂起(hang)是离散用户交互中的明显延迟,并且它几乎总是主线程上长时间运行工作的结果。 仅当主线程在大约 50 毫秒到 100 毫秒或更长时间内无响应时,离散交互延迟才会开始变得明显。

Hangs的抓取

Hangs抓取配置参数

进入Probes config页面,打开Record mode开关,勾选notification可以抓取Hangs数据(此选项为默认勾选)。


GitHub Logo

解析时需要打开Flags页面的Hangs Detection开关(Disabled切换为Enabled)。


GitHub Logo

Hangs展示说明

将抓取的trace文件导入到smartperf工具中,查看挂起的情况。

泳道图展示

GitHub Logo

类型说明

GitHub Logo

点击Hangs Detection开关下的选项可以选择展示的不同类型。

根据duration大小将hang划分为4个type,即Instant、Circumstantial、Micro、Severe。4个type分别对应时长为 33ms<d<100ms、100ms≤d<250ms、250ms≤d<500ms、500ms≤d。

颜色按type由浅及深:Instant蓝色、Circumstantial黄色、Micro橙色、Severe红色。

选择不同类型展示出的泳道会不一样: 选择Instant会显示Instant、Circumstantial、Micro、Severe,如图一; 选择Circumstantial则显示Circumstantial、Micro、Severe,如图二,以此类推。

GitHub Logo

图一

GitHub Logo

图二

Hangs泳道图的点选功能

可以对hangs的各个slice进行点选,点选后在最下方的弹出层中会展示点选数据的统计的tab页。点击Hang type右侧蓝色箭头,会跳转到该hang对应的trace点。

GitHub Logo
GitHub Logo

Trace点的name依次对应tab页的Sender tid、Send time、Expect handle time、Task name/ID、Prio、Sender。

Hangs泳道图的框选功能

框选Hangs的泳道图,展示Hangs的tab页,右侧第一个下拉框可以选择类型,也能根据process ,sender去搜索。

GitHub Logo

框选Hangs的泳道图,展示Summary的tab页。

GitHub Logo

Hangs归一化泳道

为了方便查看hangs数据,对不同进程下的hangs泳道进行了归一化处理

GitHub Logo