Skip to content
目录

性能优化手段与实战思路(基于源码)

1. 运行时语义优化:事件循环原子化更新

依据:RuntimeScheduler 文档与 RFC0744。

价值:

  • 减少 UI 中间态闪烁
  • 降低 layout/effect 时序不确定性
  • 让调度优化有明确边界(tick)

2. 引擎优化:Hermes 字节码与 sourcemap 链路

依据:BundleHermesCTask.ktreact-native-xcode.sh

价值:

  • Release 产物可直接加载字节码
  • sourcemap 在 packager + compiler 双阶段保持可追踪

3. 构建优化:Autolinking 缓存

依据:ReactSettingsExtension.kt

手段:

  • lockfile + 配置文件 SHA 缓存
  • 仅在配置变化时重跑 cli config

价值:减少配置阶段 IO 与子进程开销,加快本地/CI 构建。

4. 生成优化:Codegen 按需与跳过策略

依据:generate-artifacts-executor/index.js

手段:

  • includesGeneratedCode 时避免重复生成
  • 按平台拆分产物目录
  • 清理空目录降低噪声

5. 二进制分发优化:iOS 预编译 + VFS Overlay

依据:scripts/ios-prebuild/__docs__/README.md

手段:

  • 预编译 XCFramework
  • 用 VFS overlay 解决头文件布局兼容

价值:

  • 降低业务侧从源码全编译的开销
  • 保持对历史 import 语法兼容

6. 构建产物优化:资源压缩策略与 noCompress

依据:ReactPlugin.kt 的资源配置。

手段:

  • 对 bundle 文件扩展名配置 noCompress(在特定场景避免重复压缩)

价值:平衡包体与运行时解压成本。

7. 可说的“优化框架”

把 RN 优化分成四层:

  • 语义层:调度/事件循环(正确性 + 性能)
  • 引擎层:Hermes(执行与加载效率)
  • 构建层:codegen/autolinking/缓存(工程效率)
  • 分发层:预编译与产物组织(交付效率)

MIT License.