3 ms·
V8 and SpiderMonkey extensively interpret, before functions are marked hot and traced, and every time they are deoptimized from failed guards.
by arghwhat 6y ago
V8 and SpiderMonkey extensively interpret, before functions are marked hot and traced, and every time they are deoptimized from failed guards.
- imtringued 6y agoThat only influences start up time.
- arghwhat 6y agoNo, it affects warm-up, which is not the same. JS is only JIT'ed if the interpreter decides that it has been running code enough for it to make sense, and then not even permanently. Some things will never JIT. Some things will JIT much later, leading to sudden CPU spikes later. And importantly, code will often deoptimize a few times, meaning that it drops back to interpreted to re-trace even if it had already optimized this code block. And as most web "applications" are loaded only to be thrown away as you finished reading fixed text, all of those resources were burnt for nothing. This includes an application like the eShop, which has limited need for JS for anything other than lightweight asset handling.