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 });