From 3675053225f1fbcd38c4c4e3172bb53e9e14b63e Mon Sep 17 00:00:00 2001 From: Mark Horvath Date: Thu, 10 Apr 2025 13:03:32 +0000 Subject: [PATCH] Add pre and post hooks for benchmarking --- benchmark/benchmark.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/benchmark/benchmark.cpp b/benchmark/benchmark.cpp index 3b85ead26..6d74b75b6 100644 --- a/benchmark/benchmark.cpp +++ b/benchmark/benchmark.cpp @@ -43,15 +43,28 @@ T* get_destination_buffer() { return reinterpret_cast(get_buffer()); } +// A hook before and after the benchmarks can be useful in some environments. +#ifndef KLEIDICV_BENCHMARK_PRE_HOOK +#define KLEIDICV_BENCHMARK_PRE_HOOK() +#endif +#ifndef KLEIDICV_BENCHMARK_POST_HOOK +#define KLEIDICV_BENCHMARK_POST_HOOK() +#endif + // Warms up the functor then benchmarks it. template void bench_functor(benchmark::State& state, F functor) { // warm up functor(); + + KLEIDICV_BENCHMARK_PRE_HOOK(); + for (auto _ : state) { // This code gets benchmarked functor(); } + + KLEIDICV_BENCHMARK_POST_HOOK(); } template -- GitLab