3 ms·
They harp a lot on how fast it starts up - which sounds great - but I would like to have some solid numbers on what that startup time actually is on actual devi
by Dibes 7y ago
They harp a lot on how fast it starts up - which sounds great - but I would like to have some solid numbers on what that startup time actually is on actual devices! I can't seem to find anything perusing around the GH page or the site
- acoates 7y agoWe have done some internal tests of Hermes on a RN experience within Microsoft Office on Android. Currently we use V8 with bytecode caching on Android, since it provided better startup performance than the JSC engine that normally ships within RN. So the baseline is likely already faster than stock RN. V8 runtime Memory Impact: 30MB Hermes runtime memory impact: 21.5MB V8 time to interaction: 1.4s Hermes time to interaction: 1.1s We have done similar experiments on a full react-native-windows application, replacing the Chakra JS engine (also already with bytecode so faster than stock RN) with Hermes and had app boot time on a low end device go from 3.8s to 3.1s.
- writepub 7y agoFrom your numbers: 1. runtime memory reduction: ~25% 2. Boot time reduction: 20% 3. Time to interaction reduction: 20% For apps with significant boot times, and runtime memory consumption, this is valuable.
- r1nkgrl 7y agoFor apps with significant boot times, and runtime memory consumption, this is valuable. This assumes that the reductions are purely proportional to the total and not (at least partially) fixed.
- acostin 7y agoHave you also compared it with v8-lite? https://chromium.googlesource.com/v8/v8/+/84450a2239672109bcf537d6740b8babda521567 https://chromium.googlesource.com/v8/v8/+/84450a2239672109bc...
- ricardobeat 7y agoSince it's optimized for reducing memory consumption, you'd expect it to make boot time worse?
- hashseed 7y agoImpressive numbers. Did you try to use startup snapshot in V8 to improve TTI? https://v8.dev/blog/custom-startup-snapshots https://v8.dev/blog/custom-startup-snapshots
- snek 7y agoVery nice numbers, although worth mentioning hermes only appears to support es5, so there's way less stuff to load.
- simscitizen 7y agoHermes compiles JS ahead of time to bytecode. The VM takes bytecode in as input, not source code. The ES5 vs. ES6 distinction doesn't matter as much as in other engines where the runtime takes source code as input, and as a result has to pay the more expensive ES6 parsing cost at runtime.
- cztomsik 7y agoIt's a pity the Proxy is not supported mobx is really much nicer approach to state management and usually, apps using mobx are much faster - simply because implementing shouldComponentUpdate properly is hard
- wbercx 7y agoYou could still use MobX 4 though. It's equally well maintained.
- htormey 7y agoHere are some details on Hermes perf with sample code: https://mobile.twitter.com/htormey/status/1149353390230519809 https://mobile.twitter.com/htormey/status/114935339023051980... Here is a video comparing start times for a Hermes/non Hermes RN app: https://mobile.twitter.com/nparashuram/status/1149350214215462912 https://mobile.twitter.com/nparashuram/status/11493502142154... I’m currently at Chain React in Portland and they just gave a talk on Hermes. I tweeted a few screenshots that show other perf numbers/technical details for those who are interested.
- Dibes 7y agoThanks for the links!