Practical Benchmarking Configurations for Reproducible Execution-Time Measurements of CI/CD-Style Workloads
Strahinja Stanojević, Vojin Jovanović, Milena Vujošević Janičić
Early detection of performance regressions during software development enables precise attribution of performance changes to specific code revisions and significantly reduces debugging effort and development costs. Regression detection requires stable measurements, since run-to-run noise can obscure important performance changes. Achieving stable measurements is particularly challenging for short-running benchmarks commonly used in CI/CD pipelines. We propose two benchmarking configurations that guarantee measurement stability. The first is a general-purpose configuration, aimed at highly stable measurements, enabling regression detection and reliable performance comparisons across single-threaded benchmarks and different versions of the same multi-threaded benchmark. The second targets multi-threaded benchmarks requiring cross-benchmark performance comparisons. These configurations control multiple factors, grouped into three classes: hardware optimizations, system settings, and runtime options. We evaluate these configurations, together with additional variants that isolate each individual factor and quantify their impact, for a total of