Continuous Performance Benchmarking Framework for ROOT
This work addresses performance monitoring for users of the ROOT library, but it is incremental as it builds on existing industry best practices and tools.
The authors tackled the problem of performance regression in the ROOT software library by developing a continuous performance benchmarking framework, which monitors and tracks performance evolution across multiple processor architectures and sub-systems like I/O and vectorization.
Foundational software libraries such as ROOT are under intense pressure to avoid software regression, including performance regressions. Continuous performance benchmarking, as a part of continuous integration and other code quality testing, is an industry best-practice to understand how the performance of a software product evolves over time. We present a framework, built from industry best practices and tools, to help to understand ROOT code performance and monitor the efficiency of the code for a several processor architectures. It additionally allows historical performance measurements for ROOT I/O, vectorization and parallelization sub-systems.