React Native Performance 是一份面向 React Native 的深度性能参考文档,作为 React Native 性能主题的集中入口,涵盖从渲染、包体积到原生线程与内存的多个层面。
用途 该参考用于指导 React Native 应用的性能测量与优化,强调“先测量、后优化”的原则,帮助开发者定位 FPS 掉帧、启动慢、包体积过大、内存泄漏等性能问题。
主要能力 文档按主题组织,包含以下核心参考与功能模块:
核心参考
- FPS 与重渲染(core-fps-rerenders):FPS 测量、profile-react、React Compiler(Expo SDK 54+)、原子状态、Concurrent React、Reanimated worklets(v3/v4)。
- 包体积(core-bundle-size):应用体积与 JS bundle 缩减,涉及 Ruler、Emerge、source-map-explorer、Expo Atlas、tree shaking、barrel exports、R8、asset catalog、Hermes mmap、代码分割。
功能模块
- Time to Interactive(features-tti):TTI 测量方法论、冷启动管线标记、react-native-performance。
- 原生性能(features-native-performance):TurboModule 线程、同步与异步、视图扁平化、用原生 SDK 替代 JS polyfill、16 KB 对齐、平台配置。
- 内存(features-memory):JS 泄漏检测、原生引用循环、JNI refs、智能指针、常见泄漏模式。
最佳实践
- 性能分析工具(best-practices-profiling):DevTools flamegraph、Flashlight、Xcode Instruments、Android Studio Profiler、Perfetto、bundle 分析器。
使用方式 文档以主题表格形式列出各参考文件,开发者可按需查阅对应主题的参考文档。对于 Fabric/JSI/TurboModules 架构概览,文档指引参见 react-native-core/features-new-architecture.md。
关键建议
- 始终先测量——没有基线就不要优化(FPS/TTI 用 Flashlight,bundle 用 source-map-explorer)。
- Hermes mmap 在 RN 0.79+ 中已移除——JS bundle 现在常驻内存,包体积直接影响启动内存。
- TurboModules——快速操作优先使用同步方法;仅当工作跨线程时才用异步。
- React Compiler 通过 Expo SDK 54+ 选择性启用(experiments.reactCompiler: true),可替代大部分 useMemo/useCallback。
- 重构前先剖析——80% 的性能收益来自消除瀑布流、昂贵渲染和包体积膨胀,而非微优化。
- Reanimated v3 稳定;v4 为选择性/测试版——每个项目只选一个,不要混用。
适用场景 适用于 React Native 应用的性能剖析与优化工作,包括 FPS 与重渲染分析、包体积与启动内存优化、TTI 测量、原生线程与 JNI 内存调优、内存泄漏排查,以及使用各类性能分析工具进行诊断。
限制 文档未提供具体的收费、价格、平台支持范围或效果承诺等信息,相关内容暂未提供。