How Chrome Measures Performance

Chrome collects performance data both in the lab, and from end users. There are thousands of individual metrics. This is an overview of how to sort through them at a high level.

Tracks and Metrics

At a high level, performance work in Chrome is categorized into tracks, like loading, memory, and power. Each track has high-level metrics associated with it.

Laboratory Metrics

Chrome has multiple performance labs in which benchmarks are run on continuous builds to pinpoint performance regressions down to individual changelists.

The chromium.perf lab

The main lab for performance monitoring is chromium.perf. It continuously tests chromium commits and is monitored by the perf sheriff rotation.

Other performance labs

There are several other performance labs for specialized use:

End-user metrics

The Speed Launch Metrics doc explains metrics available in UMA for end user performance. If you want to test how your change impacts these metrics for end users, you'll probably want to Run a Finch Trial.

The UMA Sampling Profiler (Googlers only) measures Chrome execution using statistical profiling, producing aggregate execution profiles across the function call tree. The profiler is useful for understanding how your code performs for end users, and the precise performance impact of code changes.