Shu-yu Guo, David Teller, Kannan Vijayan (Mozilla)
Vladan Djeric (Facebook)
This is the explainer document for a proposed new binary AST format for JS.
Performance of applications on the web platform is becoming increasingly bottlenecked by startup (load) time. Larger amounts of JS code are transferred over the wire by more sophisticated web properties. While caching helps, these properties regularly release new code, and cold load times are very important.
A brief survey from July 2017 of the uncompressed JS payload sizes for some popular web applications on desktop and mobile:
Startup performance degrades with larger JS payloads, even if only a fraction of the code is actually executed. Parsing time is a significant component, taking more CPU time than bytecode / initial JIT code generation. For example, on a powerful laptop, Chrome spends 10% to 15% of CPU time parsing JS while loading facebook.com.
... read the whole story at github.com.