benchmark
benchmark copied to clipboard
[FR] Add possibility to start iteration in timing-off state.
A common pattern I am using in my benchmarking code is:
for (auto _ : state) {
state.PauseTiming();
/* Generate some data for this iteration, or cleanup from the previous */
state.ResumeTiming();
/* Do some work */
}
This seems a little unpleasant because timing is starting when entering the loop body and immediately being paused. What I would like instead is something like:
for (auto _ : state.with_paused_timing()) {
/* Generate some data for this iteration, or cleanup from the previous */
state.ResumeTiming();
/* Do some work */
}
would this do exactly the same under the hood, just not as explicitly?
would this do exactly the same under the hood, just not as explicitly?
Well, instead of starting and then immediately pausing timing (redundant), it would start the loop body in the paused state.