使用 Trace API
Trace 支持你在代码中添加自定义 Trace 事件,帮助你追踪特定操作或业务流程。这对于分析自定义业务逻辑、统计耗时或标记应用中的关键节点非常有用。
- 对于前端开 发者:你可能想要测量某个 Hook 或组件生命周期方法的执行时间,以了解渲染延迟或副作用的耗时。例如,跟踪 useEffect Hook 执行的时长;
- 对于 Android/iOS 开发者:你可能想要分析加载 Lynx Bundle、解析资源或执行某个 NativeModule 调用所花费的时间。自定义埋点事件帮助你精准定位复杂流程中的性能瓶颈;
通过添加自定义 Trace 事件,你可以将代码中不透明的部分转化为 Trace 时间线中可视且可度量的区间,从而实现精准的性能调优。
如何使用
Slice 事件

- 定义:Slice 事件具有开始和结束时间戳,表示一个持续的区间。
- 嵌套:在同一线程上,Slice 事件可以像调用栈一样嵌套。
- 例如,如果事件 B 在事件 A 开始后且 A 结束前开始,则 B 被视为 A 的子事件,并会在 Trace UI 中以嵌套的形式显示在 A 之下。
- 适用场景:适合用于分析关心执行耗时的代码片段。
Tip
子事件必须始终在其父事件结束前结束(即 B 必须在 A 之前结束)
Instant 事件

- 定义:Instant 事件只有一个时间戳,没有持续时间。
- 适用场景:适用于标记代码中的重要时刻或节点(如状态变更、跨线程/异步边界等)。
最佳实践
Begin/End 必须在同一线程且成对出现
- 每个
beginSection必须有一个对应的endSection,且这两个调用必须发生在同一线程。 - 不要因为异常或提前 return 而导致
endSection未被调用。
错误示例
正确示例
不要跨异步边界使用 Slice 事件
- 不要在异步边界(如定时器、回调)之间使用
beginSection/endSection。 - Slice 事件要求开始和结束必须在同一个同步上下文中。
- 如果需要追踪异步边界两侧,请使用 Instant 事件。