About react-native-performance
A React Native performance reference skill for developers profiling and optimizing apps. It organizes guidance across rendering, startup, bundles, native performance, memory, and profiling tools.
Key features
- 01FPS and re-render guidance
- 02Bundle-size reduction techniques
- 03TTI measurement methods
- 04Native performance and threading
- 05Memory leak patterns
- 06Profiling tool references
Use cases
- 01Establishing an FPS or startup baseline
- 02Finding sources of bundle bloat
- 03Investigating JavaScript or native memory leaks
- 04Choosing tools to profile an app
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ maikotrindade/ awesome-react-native-skills --skill react-native-performanceAfter installing, type/react-native-performancein Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/best-practices-profiling.mdcore-bundle-size.mdcore-fps-rerenders.mdfeatures-memory.mdfeatures-native-performance.mdfeatures-tti.mdDetails
From the project READMEReact Native Performance
Deep performance reference. Canonical home for React Native performance — covers FlatList tuning, memoization, Hermes, expo-image, FPS measurement, bundle treemap analysis, Hermes mmap, R8 Android, 16 KB page-size alignment, view flattening, native threading, JNI memory patterns, and the profiling toolchain.
For Fabric/JSI/TurboModules architectural overview, see
react-native-core/features-new-architecture.md.
Core References
| Topic | Description | Reference |
|---|---|---|
| FPS & re-renders | FPS measurement, profile-react, React Compiler (Expo SDK 54+), atomic state, Concurrent React, Reanimated worklets (v3/v4) | core-fps-rerenders |
| Bundle size | App size and JS bundle reduction — Ruler, Emerge, source-map-explorer, Expo Atlas, tree shaking, barrel exports, R8, asset catalog, Hermes mmap, code splitting | core-bundle-size |
Features
| Topic | Description | Reference |
|---|---|---|
| Time to Interactive | TTI measurement methodology, cold-start pipeline markers, react-native-performance | features-tti |
| Native performance | TurboModule threading, sync vs async, view flattening, native SDKs over JS polyfills, 16 KB alignment, platform setup | features-native-performance |
| Memory | JS leak detection, native reference cycles, JNI refs, smart pointers, common leak patterns | features-memory |
Best Practices
| Topic | Description | Reference |
|---|---|---|
| Profiling tools | DevTools flamegraph, Flashlight, Xcode Instruments, Android Studio Profiler, Perfetto, bundle analyzers | best-practices-profiling |
Key Recommendations
- Always measure first — never optimize without a baseline (Flashlight for FPS/TTI, source-map-explorer for bundle)
- Hermes mmap removed in RN 0.79+ — JS bundle is now resident memory; bundle size affects startup memory directly
- TurboModules — prefer sync methods for fast operations; async only when work crosses threads
- React Compiler is opt-in via Expo SDK 54+ (
experiments.reactCompiler: true) — replaces mostuseMemo/useCallback - Profile before refactoring — 80% of perf wins come from removing waterfalls, expensive renders, and bundle bloat, not micro-optimizations
- Reanimated v3 stable; v4 opt-in/beta — pick one per project, don't mix