Casino88

JetStream 3.0: Reshaping Browser Performance Benchmarks for Modern WebAssembly

JetStream 3.0 overhauls WebAssembly benchmarks to fix the 'infinity score' problem and reflect modern web usage. A collaborative effort by WebKit, Google, and Mozilla.

Casino88 · 2026-05-04 09:56:33 · Reviews & Comparisons

The Next Generation of Browser Benchmarking

Today, in collaboration with Google and Mozilla, the WebKit team is proud to introduce JetStream 3.0, a major evolution in cross-browser performance testing. While the joint announcement covers the suite’s breadth and the collective effort behind it, this article dives deeper into how WebKit approached the challenges and the engineering work in JavaScriptCore that drives our improvements.

JetStream 3.0: Reshaping Browser Performance Benchmarks for Modern WebAssembly
Source: webkit.org

Benchmarks remain one of the most powerful tools browser engine developers rely on to guide performance optimization. Yet the web evolves rapidly, and any benchmark inevitably becomes outdated as new best practices emerge. Moreover, once the most obvious optimizations are addressed, subsequent tweaks often become narrower and more workload-specific. JetStream 3.0 represents both a refresh and a fundamental shift in how we measure performance, particularly for WebAssembly and the growing scale of modern web applications.

Redefining WebAssembly Performance Measurement

One of the most significant changes in JetStream 3.0 is the way we evaluate WebAssembly (Wasm) workloads. To understand why this change was necessary, we must look back at where Wasm started. When JetStream 2.0 launched, WebAssembly was still in its infancy. Early adopters were primarily large C/C++ projects—like video games and complex simulations—that had previously compiled to the earlier asm.js technology. The expectation was that users would tolerate a long, one-time startup cost in exchange for high throughput thereafter. Consequently, JetStream 2.0 scored Wasm in two distinct phases: Startup and Runtime.

The Zero-Time Challenge

Browser engines have become remarkably efficient at instantiating WebAssembly modules over the years. As startup times improved, even micro-optimizations began to compound. Shaving 0.1 ms off a 100 ms workload is indistinguishable from noise; however, once engines reduced instantiation time to just 2 ms, that same 0.1 ms improvement suddenly represented a 5% performance gain. In WebKit, we optimized the startup path so aggressively that for certain smaller workloads, startup time effectively reached zero milliseconds.

In JetStream 2.0, each iteration’s time was computed using Date.now(), which rounds down—so any sub‑1 ms time becomes 0 ms. This created a unique challenge for the benchmark’s scoring formula: Score = 5000 ÷ Time. When the time hit zero, the score became infinity. We eventually had to patch the harness in JetStream 2.2, clamping the score to 5000, so that a zero sub‑score wouldn’t invalidate all other measurements.

While an infinite score might sound like a victory, it was a clear signal that browser engines had outgrown JetStream 2.0’s Wasm subtests. Today, WebAssembly is on the critical path for many page loads—used in libraries, image decoders, and even UI frameworks. A “zero” startup time in a microbenchmark doesn’t account for how Wasm is actually used on the modern web.

What JetStream 3.0 Changes

JetStream 3.0 addresses these shortcomings with a completely redesigned approach to Wasm benchmarking. Instead of separating startup and runtime, the new suite measures end‑to‑end performance for realistic Wasm workloads—including those that load quickly and start executing almost immediately. The benchmark now uses higher‑resolution timers and a more nuanced scoring system that prevents the infinity problem. Additionally, the suite expands its coverage to include larger, more complex applications that reflect real‑world usage, such as scientific computing, image processing, and interactive visualizations.

Beyond WebAssembly, JetStream 3.0 also updates its JavaScript benchmarks to reflect contemporary patterns: modern frameworks, asynchronous operations, and the heavy use of DOM APIs. The overall goal is to provide a balanced, future‑proof measurement that helps browser vendors optimize for the web of today—and tomorrow.

A Collaborative Effort

The development of JetStream 3.0 was a joint effort among the WebKit team, Google’s V8 team, and Mozilla’s SpiderMonkey team. By sharing workloads, tooling, and insights, the three groups ensured that the benchmark suite is fair and representative across all major browser engines. Each team contributed its own expertise, but the benchmark harness and scoring methodology were designed to be engine‑agnostic. This collaboration is a testament to the browser community’s commitment to a faster, more capable web platform.

Looking Ahead

JetStream 3.0 is not the final word in benchmarking—the web will continue to evolve, and so will our measurement tools. But with this release, we believe we’ve taken a significant step toward capturing the performance characteristics that matter most to developers and users. We encourage all browser vendors and web developers to explore the suite, run the tests, and share feedback. Together, we can push the boundaries of what the web can do.

For more details on the technical implementation in JavaScriptCore, see our companion article on WebKit’s WebAssembly optimizations. And for the full announcement from Google and Mozilla, visit the official JetStream 3.0 page.

Recommended