关于 react-native-performance
面向 React Native 开发者的性能参考技能,涵盖渲染、启动、包体积、原生性能、内存与分析工具,辅助定位和优化应用性能。
主要功能
- 01FPS 与重复渲染指导
- 02包体积缩减方法
- 03TTI 测量方法
- 04原生性能与线程
- 05内存泄漏模式
- 06性能分析工具参考
适用场景
- 01建立 FPS 或启动基线
- 02查找包体积膨胀原因
- 03排查 JavaScript 或原生内存泄漏
- 04选择应用性能分析工具
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ maikotrindade/ awesome-react-native-skills --skill react-native-performance安装后在 Claude Code 中输入/react-native-performance确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/best-practices-profiling.mdcore-bundle-size.mdcore-fps-rerenders.mdfeatures-memory.mdfeatures-native-performance.mdfeatures-tti.md详细介绍
React Native 性能
深入的性能参考。 React Native 性能的权威指南 — 涵盖 FlatList 调优、记忆化、Hermes、expo-image、FPS 测量、包体积树状图分析、Hermes mmap、R8 Android、16 KB 页面大小对齐、视图扁平化、原生线程、JNI 内存模式以及性能分析工具链。
Fabric/JSI/TurboModules 架构概览请参阅
react-native-core/features-new-architecture.md。
核心参考
| 主题 | 描述 | 参考 |
|---|---|---|
| FPS 与重新渲染 | FPS 测量、profile-react、React Compiler(Expo SDK 54+)、原子状态、Concurrent React、Reanimated worklets(v3/v4) | core-fps-rerenders |
| 包体积 | 应用大小和 JS 包体积优化 — Ruler、Emerge、source-map-explorer、Expo Atlas、摇树优化、barrel exports、R8、资源目录、Hermes mmap、代码分割 | core-bundle-size |
功能
| 主题 | 描述 | 参考 |
|---|---|---|
| 可交互时间 | TTI 测量方法、冷启动流程标记、react-native-performance | features-tti |
| 原生性能 | TurboModule 线程处理、同步与异步、视图扁平化、优先使用原生 SDK 而非 JS polyfill、16 KB 对齐、平台配置 | features-native-performance |
| 内存 | JS 泄漏检测、原生引用循环、JNI 引用、智能指针、常见泄漏模式 | features-memory |
最佳实践
| 主题 | 描述 | 参考 |
|---|---|---|
| 性能分析工具 | DevTools 火焰图、Flashlight、Xcode Instruments、Android Studio Profiler、Perfetto、包体积分析器 | best-practices-profiling |
关键建议
- 始终先测量 — 没有基线就不要优化(使用 Flashlight 测量 FPS/TTI,使用 source-map-explorer 分析包体积)
- RN 0.79+ 已移除 Hermes mmap — JS 包现在会驻留在内存中;包体积会直接影响启动内存
- TurboModules — 快速操作优先使用同步方法;只有当工作需要跨线程时才使用异步方法
- React Compiler 可通过 Expo SDK 54+ 选择启用(
experiments.reactCompiler: true)— 可替代大多数useMemo/useCallback - 重构前先进行性能分析 — 80% 的性能提升来自移除瀑布式调用、昂贵的渲染和臃肿的包体积,而非微优化
- Reanimated v3 稳定;v4 为选择启用/测试版 — 每个项目选择一个版本,不要混用
评论
支持 Markdown