a0viedo / demystifying-js-engines

A list of resources about JavaScript engines
MIT License
1.63k stars 50 forks source link

[V8] About TurboFan #3

Open a0viedo opened 7 years ago

a0viedo commented 7 years ago

Acording to AWFY, V8 without Crankshaft it's not getting any closer in terms of performance. Are they planning to move all the optimizations or they act as complementary optimizing compilers?

bmeurer commented 7 years ago

Actually TurboFan is getting closer to Crankshaft, but in smaller increments at the moment. We are planning to roll out TurboFan incrementally together with Ignition (the new bytecode interpreter), so we are focusing our efforts on that currently. The configuration shown on AreWeFastYet, which is Fullcodegen+TurboFan will probably never fully materialize in the wild. The long-term plan is to completely remove Fullcodegen and Crankshaft.

Also note that TurboFan serves many purposes in Chrome/V8. For example TurboFan is also used as backend for the Ignition interpreter bytecode handlers, and we're also switching most of our code generation for EcmaScript builtins to TurboFan, which gave nice speedups in real world websites already (for example we could noticeably improve sites using frameworks like React or Ember.js, and at the same time we were able to improve Facebook load time, etc.). So the graph on AWFY only shows a very tiny fraction of the overall TurboFan impact.

a0viedo commented 7 years ago

@bmeurer thanks for the insight! So if I understand the implications of what you said, Ignition will take the place of the low-latency JIT, right?

bmeurer commented 7 years ago

It will take the place of the first tier, yes.

hashseed commented 7 years ago

Also, wasm.