Press → paint measured across four libraries on a trivial screen and a heavy 24-row list. JS call stacks reveal each library's architecture — and why 'first frame' means very different things when the destination actually has work to do.
Why Expo Router costs 3× cold start and RAM, what React Navigation adds on top of rn-navigation, the Hermes hot-function breakdown for each library, and a controlled experiment isolating Reanimated.
Four navigation libraries, one identical app, benchmarked on Android with Perfetto Systrace and the Hermes CPU profiler. Cold start, RAM, press-to-paint — and what's actually behind the numbers.
Verifying whether Expo Router's file-based routing actually solves the eager-aggregator problem — require.context getters, getComponent thunks, and a probe proving route discovery loads zero screens.