Skip to content

Commit 7c1fda0

Browse files
committed
fix benchmarks & codspeed integration
1 parent 662de99 commit 7c1fda0

File tree

6 files changed

+141
-119
lines changed

6 files changed

+141
-119
lines changed

benchmarks/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ target_link_libraries(benchdata PRIVATE ada)
2727
target_include_directories(benchdata PUBLIC "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>")
2828
target_include_directories(benchdata PUBLIC "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/benchmarks>")
2929
target_compile_definitions(benchdata PRIVATE ADA_URL_FILE="${url-dataset_SOURCE_DIR}/out.txt")
30+
target_compile_definitions(benchdata PRIVATE BENCHMARK_PREFIX=BenchData_)
31+
target_compile_definitions(benchdata PRIVATE BENCHMARK_PREFIX_STR="BenchData_")
3032

3133

3234
# BBC Bench

benchmarks/bbc_bench.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,6 @@ double url_examples_bytes = []() -> double {
3333
return double(bytes);
3434
}();
3535

36+
#define BENCHMARK_PREFIX BBC_
37+
#define BENCHMARK_PREFIX_STR "BBC_"
3638
#include "benchmark_template.cpp"

benchmarks/bench.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,9 @@ size_t init_data(const char* input = default_file) {
6969
url_examples_bytes = compute();
7070
return url_examples.size();
7171
}
72+
73+
#ifndef BENCHMARK_PREFIX
74+
#define BENCHMARK_PREFIX Bench_
75+
#define BENCHMARK_PREFIX_STR "Bench_"
76+
#endif
7277
#include "benchmark_template.cpp"

benchmarks/benchmark_template.cpp

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,36 @@ static void BasicBench_AdaURL(benchmark::State& state) {
8383
benchmark::Counter::kIsIterationInvariantRate);
8484
}
8585

86-
auto BasicBench_AdaURL_href = BasicBench_AdaURL<PARSE_AND_HREF, ada::url>;
87-
BENCHMARK(BasicBench_AdaURL_href);
88-
auto BasicBench_AdaURL_aggregator_href =
89-
BasicBench_AdaURL<PARSE_AND_HREF, ada::url_aggregator>;
90-
BENCHMARK(BasicBench_AdaURL_aggregator_href);
86+
#ifndef BENCHMARK_PREFIX
87+
#define BENCHMARK_PREFIX
88+
#endif
89+
90+
#ifndef BENCHMARK_PREFIX_STR
91+
#define BENCHMARK_PREFIX_STR ""
92+
#endif
9193

92-
static void BasicBench_AdaURL_CanParse(benchmark::State& state) {
94+
#define CONCAT_IMPL(x, y) x##y
95+
#define CONCAT(x, y) CONCAT_IMPL(x, y)
96+
#define BENCHMARK_NAME(name) CONCAT(BENCHMARK_PREFIX, name)
97+
98+
auto BENCHMARK_NAME(BasicBench_AdaURL_href) =
99+
BasicBench_AdaURL<PARSE_AND_HREF, ada::url>;
100+
static auto* CONCAT(benchmark_register_,
101+
BENCHMARK_NAME(BasicBench_AdaURL_href)) =
102+
::benchmark::RegisterBenchmark(BENCHMARK_PREFIX_STR
103+
"BasicBench_AdaURL_href",
104+
BENCHMARK_NAME(BasicBench_AdaURL_href));
105+
106+
auto BENCHMARK_NAME(BasicBench_AdaURL_aggregator_href) =
107+
BasicBench_AdaURL<PARSE_AND_HREF, ada::url_aggregator>;
108+
static auto* CONCAT(benchmark_register_,
109+
BENCHMARK_NAME(BasicBench_AdaURL_aggregator_href)) =
110+
::benchmark::RegisterBenchmark(
111+
BENCHMARK_PREFIX_STR "BasicBench_AdaURL_aggregator_href",
112+
BENCHMARK_NAME(BasicBench_AdaURL_aggregator_href));
113+
114+
static void BENCHMARK_NAME(BasicBench_AdaURL_CanParse)(
115+
benchmark::State& state) {
93116
// volatile to prevent optimizations.
94117
volatile size_t success = 0;
95118

@@ -147,7 +170,11 @@ static void BasicBench_AdaURL_CanParse(benchmark::State& state) {
147170
benchmark::Counter::kIsIterationInvariantRate);
148171
}
149172

150-
BENCHMARK(BasicBench_AdaURL_CanParse);
173+
static auto* CONCAT(benchmark_register_,
174+
BENCHMARK_NAME(BasicBench_AdaURL_CanParse)) =
175+
::benchmark::RegisterBenchmark(BENCHMARK_PREFIX_STR
176+
"BasicBench_AdaURL_CanParse",
177+
BENCHMARK_NAME(BasicBench_AdaURL_CanParse));
151178

152179
#if ADA_url_whatwg_ENABLED
153180
size_t count_whatwg_invalid() {

0 commit comments

Comments
 (0)