Hermes: build-time bytecode to a running JS heap
Prerequisites: Start here / basic technical literacy
Build and launch path
Mental model verified
Metro prepares the JS bundle, the Hermes compiler produces bytecode for a release build, and the bundled Hermes engine loads and executes it on device. The engine owns JS objects and garbage collection; React Native supplies host APIs.
[S01] [S02]Worked flow synthesis
Imagine opening a policy list: the binary loads its JS bundle, modules initialize, React executes the first render and asks Fabric to represent host views. Bytecode avoids treating the source file as raw JS to parse at launch; it does not execute the screen for you.
[S01] [S05]Engineering decision synthesis
Measure startup and heap in a release build on representative Android and iOS devices. Do not quote historical Hermes-versus-JSC gains as a guarantee for your app.
[S01] [S02]Failure mode and improvement synthesis
Large eager module initialization or a long synchronous JS task can dominate startup despite bytecode. Split and defer noncritical work, then compare the same user journey before and after.
[S01] [S14]Check yourself: Does precompiled bytecode mean app startup and every JS operation become free?
No. It removes much runtime parse/compile work; loading, initialization, module evaluation, JS execution and GC still consume time.