Benchmarking Expo Router Navigation: Memory Footprint and Frame Drop Analysis Under Deep Stack Depth
When migrating a multi-tenant dashboard from React Navigation to Expo Router's file-based routing, we hit a silent performance cliff at 42 nested routes. Navigation animations dropped from 60fps to 38fps, and memory usage spiked by 140MB on Android mid-range devices. This benchmark isolates the breaking point.
Test Topology
Environment:
Expo SDK 52, React Native 0.76
Test devices: Pixel 5 (Android 13), iPhone 12 (iOS 17)
Profiling: React Native Performance Monitor + Android Studio Memory Profiler
Load harness: Automated UI test cycling through 10/25/50/75 nested (tabs) and [id] dynamic routes
Route Structure:
app/ (auth)/ login.tsx (dashboard)/ _layout.tsx index.tsx [tenant]/ settings/ [section]/ [subsection]/ index.tsx // Depth = 6 levels
Enter fullscreen mode
Exit fullscreen mode
Metric Comparison Table
Route Depth Avg Navigation Time (ms) Memory Delta (MB) Frame Drops (per transition) UI…