Reviewers: Franziska Hinkelmann and Benedikt Meurer from the V8 team.
**Update: Node.js 8.3.0 has shipped V8 6.0 with Turbofan .
Now it's time for us to challenge all our assumptions about performance because the V8 team has written a new JIT Compiler: Turbofan.
Starting with the more commonly known "V8 Killers" (pieces of code which cause optimization bail-out - a term that no longer makes sense in a Turbofan context) and moving towards the more obscure discoveries Matteo and I have made around Crankshaft performance, we're going to walk through a series of microbenchmark results and observations over progressing versions of V8.
We'll be looking at the performance of these microbenchmarks on V8 versions 5.1, 5.8, 5.9, 6.0 and 6.1.
To put each of these versions into context: V8 5.1 is the engine used by Node 6 and uses the Crankshaft JIT Compiler, V8 5.8 is used in Node 8.0 to 8.2 and uses a mixture of Crankshaft and Turbofan.
Currently, 6.0 engine is due to be in Node 8.3 (or possibly Node 8.4) and V8 version 6.1 is the latest version of V8 (at the time of writing) which is integrated with Node on the experimental node-v8 repo at https://github.com/nodejs/node-v8 . In other words, V8 version 6.1 will eventually be in some future version of Node, likely Node.js 9.
Let's take a look at our microbenchmarks and on the other side, we'll talk about what this means for the future. All the microbenchmarks are executed using benchmark.js , and the values plotted are operation per second, so higher is better in every diagram.