用途
该技能用于调查 Jetpack Compose 的重组(recomposition)性能问题。它被设计为一个路由型(Router only)技能,本身不提供深层修复方案,而是帮助判断性能问题落在哪一条轴线上,并指向对应的专项技能。
两条轴线
技能将重组性能问题归纳为两个相互独立、可各自成为主导因素的维度:
- 参数稳定性 / 跳过(Parameter stability / skipping):Compose 能否跳过这个可重启(restartable)的 composable;其参数是否稳定且可比较。
- State 的读取位置(Where State is read):与帧率相关的 State 是在组合(composition)阶段读取,还是在布局(layout)/绘制(draw)阶段读取。
两条轴线可以独立组合,任一方都可能成为主要瓶颈。
路由规则
根据主要怀疑方向选择下一步技能:
- 若怀疑是跳过、不稳定参数、编译器报告或 composables.txt 频繁变动,转向 compose-stability-diagnostics。
- 若怀疑是帧率相关 State 的读取阶段(组合 vs 布局/绘制),转向 compose-state-deferred-reads。
- 若两方面都有证据,则并行应用这两个技能。
使用方式
- 先判断哪条轴线更符合现有证据,打开匹配的技能。
- 若无法判断,可对两条轴线分别采样——对比稳定性变动与组合阶段对快速变化 State 的读取。
- 修改后重新测量(Re-measure after changes)。
适用场景
- 调查 Jetpack Compose 重组性能。
- 分析 skippable/restartable composable。
- 查看 composables.txt 或编译器报告。
- 使用 Layout Inspector 等工具排查。
限制
以下情况不应应用该技能:
- 重组正确追踪了真实数据变化,或该缺陷属于正确性问题而非开销问题。
- 没有任何 profiler 或编译器信号提示存在性能问题。
补充说明
该技能的官方文本暂未提供,以上内容依据其描述与介绍整理。