nonius
nonius copied to clipboard
A C++ micro-benchmarking framework
Need to bump this to get the msvc fixes
New PR to discuss improvements for the new `NONIUS_BENCHMARK` syntax proposal.
#65 is a breaking change, so it needs a migration strategy.
Hot code performs differently from cold code. Caches and stuff. Currently execution order goes like this: benchmark0/sample0, benchmark0/sample1, ..., benchmark0/sampleN, benchmark1/sample0, benchmark1/sample1, ..., benchmark1/sampleN, ..., benchmarkM/sample0, benchmarkM/sample1, ..., benchmarkM/sampleN. This...
Grouping benchmarks into suites enables certain functionality like having different sets of parameters for different benchmarks.
Sometimes things other than time need to be measured. Nonius should support collecting additional metrics like, e.g., cache misses and branch mispredictions. Ideally this would be a generically extensible feature...
The interface for automatically register benchmarks is the following: ``` NONIUS_BENCHMARK("My Benchmark", [](nonius::chronometer meter) { //... }) ``` Because of that it is not possible to use #ifdef inside the...
Given #36, it is only natural to automate verification of fitness to different models, in order to estimate the likelihood of some code belonging to a particular complexity class.
If benchmarks can be parameterized, once can run the same code over inputs of different sizes, for example, and check how some algorithm scales with input.