V8: Behind the Scenes (January Edition feat. Ignition+TurboFan and Community Engagement)
Not a lot happened behind the scenes of V8 since the December Edition due to holidays and planning for 2017, so this is going to be a brief article. The most exciting V8 event for the web world was probably turning on the flag for WebAssembly by default in Chrome M57 and Node 8.
Ignition and TurboFan
As mentioned earlier, we are planning to ship the new compiler architecture based on the Ignition interpreter and the TurboFan compiler this year, ideally by the end of this quarter. Despite holidays we have made a lot of progress with getting closer to the finish line. For example we have finally caught up with the default configuration (based on fullcodegen and Crankshaft) on the AcmeAir benchmark used to measure Node.js throughput performance.
I'm also excited about the page load time improvements we achieved with Ignition and TurboFan on various pages, as this area is highly relevant to the web performance crisis.
Most of these improvements are possible because we can reduce the number of optimizations and deoptimizations during startup, but also because we need to parse only once now to generate Ignition bytecode, and optimized code is then generated from bytecode rather than having to reparse the function for Crankshaft.