React native performance
Skill maikotrindade/awesome-react-native-skills/skills/react-native-performance
Deep React Native performance — FPS profiling, bundle size, TTI measurement, native threading, memory leaks, and profiling tools.From its SKILL.md
npx -y skills add maikotrindade/awesome-react-native-skills --skill react-native-performanceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
2.8 KB, as published. Nobody here has run it
React 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