SuperAPI AI 工具集

compose-recomposition-performance

编程与开发

查看项目

更新于 10-16 05:37

技能介绍

用途

该技能用于调查 Jetpack Compose 的重组(recomposition)性能问题。它被设计为一个路由型(Router only)技能,本身不提供深层修复方案,而是帮助判断性能问题落在哪一条轴线上,并指向对应的专项技能。

两条轴线

技能将重组性能问题归纳为两个相互独立、可各自成为主导因素的维度:

  1. 参数稳定性 / 跳过(Parameter stability / skipping):Compose 能否跳过这个可重启(restartable)的 composable;其参数是否稳定且可比较。
  2. State 的读取位置(Where State is read):与帧率相关的 State 是在组合(composition)阶段读取,还是在布局(layout)/绘制(draw)阶段读取。

两条轴线可以独立组合,任一方都可能成为主要瓶颈。

路由规则

根据主要怀疑方向选择下一步技能:

  • 若怀疑是跳过、不稳定参数、编译器报告或 composables.txt 频繁变动,转向 compose-stability-diagnostics。
  • 若怀疑是帧率相关 State 的读取阶段(组合 vs 布局/绘制),转向 compose-state-deferred-reads。
  • 若两方面都有证据,则并行应用这两个技能。

使用方式

  1. 先判断哪条轴线更符合现有证据,打开匹配的技能。
  2. 若无法判断,可对两条轴线分别采样——对比稳定性变动与组合阶段对快速变化 State 的读取。
  3. 修改后重新测量(Re-measure after changes)。

适用场景

  • 调查 Jetpack Compose 重组性能。
  • 分析 skippable/restartable composable。
  • 查看 composables.txt 或编译器报告。
  • 使用 Layout Inspector 等工具排查。

限制

以下情况不应应用该技能:

  • 重组正确追踪了真实数据变化,或该缺陷属于正确性问题而非开销问题。
  • 没有任何 profiler 或编译器信号提示存在性能问题。

补充说明

该技能的官方文本暂未提供,以上内容依据其描述与介绍整理。