Mozilla Automation TeamAbhishek Nimalan5 min readintermediate
The Road to Better Performance Profiles – Part 2
Summary
Mozilla’s Automation Team added native system‑wide profiling to their CI pipelines for Speedometer 3 on Windows, macOS, Linux, and Android, using xperf, perf, and simpleperf together with the samply toolchain, and modernized the mozgeckoprofiler symbolication stack by replacing the legacy Eliot service with samply and profiler‑edit.
- Implemented platform‑specific profilers (xperf, perf, simpleperf) in CI to capture full system traces for Firefox and custom Chromium builds running Speedometer 3.
- Added a reproducible pipeline: start profiler → run benchmark via Raptor/Browsertime → stop profiler → symbolicate with samply → post‑process with profiler‑edit → upload artifacts.
- Created compact and labelled profile variants to improve readability and enable automated comparison reports across patches.
- Ported the new symbolication workflow to XPCShell, Mochitest, and local developer environments, fully retiring the deprecated Eliot service.
System‑wide native profiles give developers visibility into OS‑level interactions (kernel, JIT, I/O) that JavaScript‑only profiles miss, enabling faster root‑cause analysis of performance regressions across all supported platforms.
6/10


