Casino88

JetStream 3.0: A New Benchmark for Modern Web Performance

JetStream 3.0, a collaboration between Apple, Google, and Mozilla, updates the cross-browser benchmark suite with a focus on WebAssembly and modern web app scale, solving the 'infinity problem' where zero startup times broke scoring.

Casino88 · 2026-05-04 18:51:45 · Reviews & Comparisons

Introduction

In a joint effort with Google and Mozilla, the WebKit team has unveiled JetStream 3.0, a major update to the widely used cross-browser benchmark suite. This release not only refreshes the test set but also introduces a fundamental shift in how we measure browser performance—especially for WebAssembly and large-scale web applications. While the broader announcement highlights the collaborative work, this article dives into the specific challenges the WebKit team tackled and the innovations in JavaScriptCore that drove the improvements.

JetStream 3.0: A New Benchmark for Modern Web Performance
Source: webkit.org

Why a New Benchmark Was Necessary

Benchmarks are essential tools for browser engine developers to drive performance gains. However, the web evolves rapidly, and any benchmark can become outdated as new best practices emerge. When the most obvious optimizations are exhausted for a given benchmark, subsequent improvements tend to become highly specific to that workload rather than general. JetStream 3 addresses both issues—it refreshes the test suite and redefines how performance is measured, particularly in the context of WebAssembly and the increasing complexity of modern web applications.

Rethinking WebAssembly Performance Measurement

One of the most significant changes in JetStream 3 is the approach to WebAssembly (Wasm) workloads. To understand why, we must look back at the early days of Wasm.

The Evolution of Wasm in Benchmarks

When JetStream 2 was released, WebAssembly was still in its infancy. Early adopters were large C/C++ projects (like video games) that previously compiled to asm.js. These applications often had high one-time startup costs, but users tolerated them in exchange for high runtime throughput. Consequently, JetStream 2 measured Wasm performance in two distinct phases: Startup and Runtime.

The Infinity Problem

Over the years, browser engines became remarkably efficient at instantiating WebAssembly modules. As startup times improved, the incentive to optimize even further grew. Shaving 0.1 ms off a 100 ms workload is negligible, but once engines reduced instantiation to just 2 ms, that same 0.1 ms improvement suddenly represented a 5% gain. In WebKit, the startup path was optimized so aggressively that for smaller workloads, startup time effectively reached zero seconds.

In JetStream 2, each iteration’s time was computed using Date.now(), which rounds down to the nearest millisecond. When the measured time became 0 ms, the scoring formula Score = 5000 / Time returned infinity. This forced a patch in JetStream 2.2 that clamped the score to 5000. While an infinite score might seem like a victory, it actually indicated that browser engines had outgrown the Wasm subtests. On the modern web, Wasm is often in the critical path—used in libraries, image decoders, and UI frameworks—so a “zero” startup time in a microbenchmark no longer reflects real-world performance.

From Startup/Runtime to Real-World Workloads

JetStream 3 abandons the separate Startup and Runtime phases. Instead, it integrates Wasm workloads that mirror how the technology is actually used today: as part of the immediate rendering pipeline, not as separate offline compilation steps. This shift means the benchmark now captures the total cost of Wasm in a way that aligns with user experience—where every millisecond matters from page load to interaction.

Enhanced Scale and Scope

Modern web applications are larger and more complex than ever. JetStream 3 introduces tests that reflect this scale, including workloads that combine JavaScript, WebAssembly, and DOM interactions. The suite also includes larger data sets and more realistic scenarios, such as heavy image processing, real-time video effects, and complex UI frameworks. By pushing the boundaries of what a browser engine must handle, JetStream 3 ensures that optimizations remain general and beneficial to real users.

Implications for Browser Engines

The changes in JetStream 3 required significant engineering work across all major browser engines. For WebKit, the team focused on improving JavaScriptCore to better handle the new Wasm integration and larger-scale workloads. The result is not just faster scores, but more relevant performance metrics that help developers build better web experiences.

Conclusion

JetStream 3.0 marks a pivotal moment in web benchmarking. By addressing the infinity problem, shifting from artificial startup/runtime phases to holistic Wasm measurement, and scaling up to modern application workloads, the suite provides a more accurate and fair assessment of browser performance. As the web continues to evolve, benchmarks like JetStream 3 will help drive the next generation of optimizations—ensuring that users enjoy faster, smoother, and more capable web applications.

Recommended