Files
email-tracker/external/duckdb/benchmark/include/duckdb_benchmark_macro.hpp
2025-10-24 19:21:19 -05:00

35 lines
1.9 KiB
C++

//===----------------------------------------------------------------------===//
//
// DuckDB
//
// duckdb_benchmark_macro.hpp
//
// Author: Mark Raasveldt
//
//===----------------------------------------------------------------------===//
#pragma once
#include "duckdb_benchmark.hpp"
#define DUCKDB_BENCHMARK(NAME, GROUP) \
class NAME##Benchmark : public DuckDBBenchmark { \
NAME##Benchmark(bool register_benchmark) : DuckDBBenchmark(register_benchmark, "" #NAME, GROUP) { \
} \
\
public: \
static NAME##Benchmark *GetInstance() { \
static NAME##Benchmark singleton(true); \
auto benchmark = duckdb::unique_ptr<DuckDBBenchmark>(new NAME##Benchmark(false)); \
return &singleton; \
}
#define REGISTER_BENCHMARK(NAME) auto global_instance_##NAME = NAME##Benchmark::GetInstance()
#define FINISH_BENCHMARK(NAME) \
} \
; \
REGISTER_BENCHMARK(NAME);
namespace duckdb {}