用途:为 React Native 应用提供性能优化指引,覆盖 JavaScript/React、原生 iOS/Android 与打包三个层面。适用于调试卡顿 UI 或动画、排查 JS 与原生内存泄漏、优化启动时间(TTI)、减小包体与应用体积、编写 Turbo Modules、做性能剖析及代码评审。
主要能力:按优先级组织规则,第一档为 FPS 与重渲染(js-)和包体积(bundle-),其次为 TTI、原生性能,再次为内存管理与动画。提供问题到参考文件的映射,如卡顿从 js-measure-fps.md 到 js-profile-react.md,重渲染从 js-profile-react.md 到 js-react-compiler.md,启动慢从 native-measure-tti.md 到 bundle-analyze-js.md,体积大从 bundle-analyze-app.md 到 bundle-r8-android.md。
使用方式:遵循“测量→优化→再测量→验证”循环。运行时问题优先采集提交时间线、重渲染次数、慢组件与启动数据;未测到渲染或 FPS 问题时不建议加 memoization、原子状态或编译器改动。FPS 剖析可用 agent-device react-devtools status、wait --connected、profile start/stop、profile slow --limit 5、profile rerenders --limit 5、profile timeline --limit 20,并在 start 与 stop 之间驱动目标交互;不可用时改用 Metro 的 j 或 Dev Menu 打开 React Native DevTools 的 Profiler 录制。包体积可用 npx react-native bundle --entry-file index.js --bundle-output output.js --platform ios --sourcemap-output output.js.map --dev false --minify true,再用 npx source-map-explorer output.js --no-border-checks 分析,并用 ls -lh output.js 对比前后大小。原生剖析用 Xcode Instruments 的 Time Profiler 与 Android Studio 的 CPU Profiler。
限制与守卫:建议 API 前先核对库版本,例如 FlashList v2 已弃用 estimatedItemSize;不要在行为无明显错误或剖析无浪费证据时改 useMemo/useCallback 依赖;不要臆测过期闭包,需给出复现或剖析证据;剖析流程时应测量目标交互本身,而非以组件树深度或数量作为主要证据。参考中的 shell 命令应视为本地开发操作,运行前审查,优先使用固定版本工具,避免把远程脚本直接管道到 shell;第三方库和插件需固定版本、验证来源并按流程更新。远程代码分块仅应作为一方产物交付,优先应用内置分块或签名的 CI 发布清单,托管分块需来自你控制的 HTTPS 可信源并锁定当前发布版本。基于 Callstack 的《The Ultimate Guide to React Native Optimization》。