ExplainerAt the moment, V8 compiles WebAssembly modules by first compiling all functions with the baseline compiler Liftoff, and then immediately compiling all functions with the optimizing compiler TurboFan, see https://v8.dev/docs/wasm-compilation-pipeline
This feature is just a new implementation of an already implemented specification.
With WebAssembly Dynamic Tiering, an heuristic decides which functions of a WebAssembly module get optimized, and when the optimization is triggered. This is an improvement to the existing eager optimization approach, where all functions get optimized immediately after baseline compilation is finished. WebAssembly Dynamic Tiering reduces the resource consumption of the optimizing compiler, and prevents the compiler from competing with the web application for resources.
TAG review statusNot applicable
WebAssembly dynamic tiering may lead to unexpected performance regressions.
Interoperability and CompatibilityGecko
: No signalWebKit
: No signalWeb developers
: No signals
Goals for experimentation
The goal of the experiment is to allow important partners to experiment with the performance impact of WebAssembly dynamic tiering. This feature may change the startup behavior of WebAssembly code significantly, which is why we would like to experiment in the guarded environment of an origin trial first.
Reason this experiment is being extended
Ongoing technical constraints
Debugging behavior does not change
Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?YesYes
Requires code in //chrome?False
No milestones specified
Link to entry on the Chrome Platform Statushttps://chromestatus.com/feature/5685307493056512