v135 · performance

Timer Distribution Lab

Collect real requestAnimationFrame frame-time samples in your browser and plot the distribution. Cold starts, GC pauses, and first-load JIT compilation create a second peak in the histogram — the bimodal signature Chrome 135 lets you detect programmatically.

checking bimodal timing API…
Chrome 135 adds the ability to detect when a performance timing is part of a bimodal distribution (fast warm path vs slow cold path). A single P95 metric can look fine while hiding a large cold-start tail. This lab collects real frame timings from requestAnimationFrame and shows you whether the distribution looks unimodal (healthy) or bimodal (cold-start problem present).

Collection settings

Frame-time histogram

X-axis: frame duration (ms). Y-axis: sample count. Blue line = median, orange line = P95.

Distribution statistics

Samples
Median (P50)
P75
P95
P99
Std deviation
Bimodal score
Classification

How Chrome 135 uses this

// Chrome 135 PerformanceEntry — bimodal annotation const observer = new PerformanceObserver(list => { for (const entry of list.getEntries()) { // Chrome 135 adds isBimodal + warmStartDuration if ('isBimodal' in entry) { if (entry.isBimodal) { console.log('Cold start detected — duration:', entry.duration); console.log('Warm path baseline:', entry.warmStartDuration); showColdStartBanner(); // tell the user "first load is slower" } else { console.log('Warm start — duration:', entry.duration); } } } }); observer.observe({ type: 'navigation', buffered: true });