1---2name: react-native-performance3description: Deep React Native performance — FPS profiling, bundle size, TTI measurement, native threading, memory leaks, and profiling tools.4---56# React Native Performance78> **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.9>10> For Fabric/JSI/TurboModules architectural overview, see `react-native-core/features-new-architecture.md`.1112## Core References1314| Topic | Description | Reference |15|-------|-------------|-----------|16| FPS & re-renders | FPS measurement, profile-react, React Compiler (Expo SDK 54+), atomic state, Concurrent React, Reanimated worklets (v3/v4) | [core-fps-rerenders](references/core-fps-rerenders.md) |17| 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](references/core-bundle-size.md) |1819## Features2021| Topic | Description | Reference |22|-------|-------------|-----------|23| Time to Interactive | TTI measurement methodology, cold-start pipeline markers, `react-native-performance` | [features-tti](references/features-tti.md) |24| Native performance | TurboModule threading, sync vs async, view flattening, native SDKs over JS polyfills, 16 KB alignment, platform setup | [features-native-performance](references/features-native-performance.md) |25| Memory | JS leak detection, native reference cycles, JNI refs, smart pointers, common leak patterns | [features-memory](references/features-memory.md) |2627## Best Practices2829| Topic | Description | Reference |30|-------|-------------|-----------|31| Profiling tools | DevTools flamegraph, Flashlight, Xcode Instruments, Android Studio Profiler, Perfetto, bundle analyzers | [best-practices-profiling](references/best-practices-profiling.md) |3233## Key Recommendations3435- **Always measure first** — never optimize without a baseline (Flashlight for FPS/TTI, source-map-explorer for bundle)36- **Hermes mmap removed in RN 0.79+** — JS bundle is now resident memory; bundle size affects startup memory directly37- **TurboModules** — prefer sync methods for fast operations; async only when work crosses threads38- **React Compiler** is opt-in via Expo SDK 54+ (`experiments.reactCompiler: true`) — replaces most `useMemo`/`useCallback`39- **Profile before refactoring** — 80% of perf wins come from removing waterfalls, expensive renders, and bundle bloat, not micro-optimizations40- **Reanimated v3 stable; v4 opt-in/beta** — pick one per project, don't mix