A C++14 library for authoring and executing benchmarks with a GoogleTest-like API, supporting statistical analysis and performance tracking.
Celero is a C++ benchmarking library and framework that enables developers to write, execute, and analyze performance tests for their code. It solves the problem of inconsistent and hard-to-reproduce benchmark results by providing a structured, GoogleTest-like API that integrates seamlessly into C++ projects. The library focuses on statistical accuracy, automating measurements, and tracking performance over time.
C++ developers and teams who need to measure and optimize code performance, particularly those working on performance-critical applications or libraries where benchmarking is essential for validating algorithm choices and design decisions.
Developers choose Celero because it offers a comprehensive, easy-to-integrate solution for C++ benchmarking with features like automated RAM tracking, statistical reporting, and CI/CD support. Its GoogleTest-like API lowers the learning curve, while its focus on accuracy and historical tracking helps teams maintain performance standards over time.
C++ Benchmark Authoring Library/Framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Celero emphasizes statistical soundness by automatically computing optimal samples and iterations, and capturing rich timing statistics to ensure accurate, reproducible benchmark results.
It includes automated RAM tracking, user-defined measurements, and problem space scaling, allowing for multi-faceted performance analysis beyond just execution time.
With a GoogleTest-like API and a single header file, Celero integrates seamlessly into C++ projects, lowering the learning curve for developers familiar with testing frameworks.
Outputs results in JUnit XML format for continuous integration, enabling automated performance regression tracking in pipelines, as highlighted in the README.
Celero requires developers to provide GoogleTest to build its unit tests, adding an external dependency that complicates setup and maintenance.
Features like user-defined measurements and problem spaces require additional boilerplate code and deeper understanding, which can be overwhelming for simple benchmarking needs.
It only supports C++14 and above, excluding legacy projects or those constrained by older compiler standards, limiting its adoption in some environments.