v135 · performance

Enabling Web Applications to understand bimodal performance timings

Web applications may suffer from bimodal distribution in page load performance due to factors outside of the application’s control. For example, when a user agent first launches in a "cold start" scenario, it must perform many expensive initialization tasks that compete for system resources. Browser extensions can also affect performance, since some extensio

concepts

  1. Bimodal timings probe

    Live read of NavigationTiming.confidence on the current page load — high vs low.

  2. Tell the user: this is a cold start

    The motivating PWA scenario from the spec — branch on confidence to either show a "first launch" banner or exclude the slow path from your p75 dashboards.

  3. Bimodal histogram explorer

    Drag a slider to mix cold-start and warm-start samples. The histogram redraws, the median tightens, and the confidence flag flips from high to LOW when the distribution becomes bimodal — mirroring exactly how Chrome will tag suspect samples.

  4. Timer Distribution Lab

    Collect real requestAnimationFrame timing samples in your browser and plot the histogram. Vary the workload between frames to induce GC pauses and JIT jank, then read the bimodal score and P50/P95 spread — exactly the shape Chrome 145 lets you detect at runtime.

why it shipped

When a user agent first launches (a "cold start" scenario), it must perform many expensive initialization tasks that compete for resources on the system. Consequently, web applications may suffer from bimodal distribution in page load performance. Content they attempt to load will be in competition with other initialization work. This makes it difficult to detect if performance issues exist within web applications themselves, or because of a user-agent-generated condition of high resource contention. This is particularly a pain point for pinned PWAs (Progressive Web Apps) that will often re

references