性能 trace 工具
收藏
我的收藏简介
性能 trace 工具功能可以分析小程序启动过程中的主要耗时。
版本支持
使用方法
- 1.调试器中打开 Trace Pannel,点击左上角按钮发起录制并生成 Trace 二维码。
- 2.使用抖音 APP (20.8.0 或以上版本)扫描二维码,若连接成功按钮变红提示设备已连接。
- 3.点击结束录制,为了方便用户查看,Trace 会自动最大化面板,并生成性能 Trace 报表。用户可以将鼠标移动到感兴趣的位置,通过鼠标滚轮进行缩放查看。
- 4.能力介绍。
- 5.切换底部面板。
指标说明
指标
指标 | 说明 |
小程序启动 | 从小程序启动到小程序进入前台耗时 |
包下载 | 小程序包下载耗时 ,若没有则表示使用本地缓存小程序包启动 |
加载 JS | JS 文件加载耗时 |
处理首帧数据 | 从渲染层获取首帧数据到开始渲染 |
执行渲染逻辑 | 渲染层渲染首帧数据 |
setData | setData 将数据从逻辑层发送到渲染层渲染,逻辑层和渲染层都有耗时 |
tt.request | tt.request 调用耗时 |
request callback | tt.request callback 执行耗时 |
生命周期 | App,Page,Component 的生命周期函数执行耗时 |
API 调用 | API 调用耗时 |
API 调用回调执行 | API callback 执行耗时 |
Args
参数 | 类型 | 说明 |
trace_id | number | 数据追踪 id,用于匹配 setData 等异步 API 调用 |
method | string | 方法名 |
data | string | setData 的 data |
size | number | setData data 的字节长度 |
file_path | string | 文件路径 |
url | string | tt.request url 参数 |
request_result | number | tt.request 是否成功 1:成功 0:失败 |
meta_type | number | meta 信息是否使用本地缓存 1:使用 0:不使用 |
pkg_type | number | 小程序包是否使用本地缓存 2:使用本地包 1:使用断点续传:0:使用下载包 |
jsc_preload_success | number | 逻辑层是否预加载 |
webview_preload_success | number | 渲染层是否预加载 |
常见问题
Q:加载 JS 中 page-frame.js 和 path-frame.js 是什么?
A:小程序包中的文件是开发者小程序代码的编译产物,page-frame.js 主要是页面 ttml 文件转换成的 JS 代码,path-frame.js 主要是页面 ttss 转换成的 JS 代码。
Q:图中的空白表示什么?
A:空白是小程序 SDK 内部耗时,开发者无需关注。
Q:为什么某些 API 耗时很长?
A:当前 API 耗时计算公式为:API 调用时间 = 前端处理 API 时间 + 小程序端上处理 API 时间。而某些 API 需要用户介入才能继续执行。这类 API 包括:UI 相关 API,例如 tt.showModal。授权相关 API,例如 tt.getLocation。而这个用户等待时间也是算在端上处理 API 时间中的,所以会导致这类 API 处理时间过长(不准确),后续对这一部分 API 的 Trace 我们会继续优化。
Q:电脑装过虚拟机之后,扫描 Trace 功能的二维码,手机上能正常进入小程序,为什么开发者工具没反应?
A:Trace 功能使用时要求开发者工具和手机在同一个局域网。但是虚拟机会修改主机网络设置,对这一过程造 成影响。建议关停虚拟机应用,同时关闭所有虚拟机相关的网络设置,再重试 Trace 功能。
(图例仅做演示参考,具体设置以实际系统为准)。