Skip to content

Commit c56fffa

Browse files
committed
Simplify sort benchmark setup
1 parent 154e215 commit c56fffa

File tree

1 file changed

+9
-24
lines changed

1 file changed

+9
-24
lines changed

source/containers/test/sort/sort_benchmark.cpp

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ struct data {
3232
containers::array<std::uint8_t, bounded::constant<size>> m;
3333
};
3434

35-
template<std::size_t data_size>
36-
auto benchmark_impl(benchmark::State & state, auto function) -> void {
35+
template<std::size_t data_size, auto function>
36+
auto benchmark_sort(benchmark::State & state) -> void {
3737
auto engine = std::mt19937(std::random_device()());
3838
auto value_distribution = std::uniform_int_distribution<unsigned>();
3939
using container_t = containers::vector<data<data_size>>;
@@ -58,20 +58,6 @@ auto benchmark_impl(benchmark::State & state, auto function) -> void {
5858
}
5959
}
6060

61-
template<std::size_t data_size>
62-
auto benchmark_chunked_insertion_sort(benchmark::State & state) -> void {
63-
benchmark_impl<data_size>(state, [](auto & range) { return containers::chunked_insertion_sort(range); });
64-
}
65-
66-
template<std::size_t data_size>
67-
auto benchmark_mine(benchmark::State & state) -> void {
68-
benchmark_impl<data_size>(state, containers::new_sort);
69-
}
70-
71-
template<std::size_t data_size>
72-
auto benchmark_standard(benchmark::State & state) -> void {
73-
benchmark_impl<data_size>(state, containers::sort);
74-
}
7561

7662
constexpr auto insertion_sort = [](containers::range auto && r) -> void {
7763
auto const first = containers::begin(r);
@@ -87,16 +73,15 @@ constexpr auto insertion_sort = [](containers::range auto && r) -> void {
8773
}
8874
};
8975

90-
template<std::size_t data_size>
91-
auto benchmark_insertion_sort(benchmark::State & state) -> void {
92-
benchmark_impl<data_size>(state, insertion_sort);
93-
}
76+
using containers::chunked_insertion_sort;
77+
using containers::new_sort;
78+
using containers::sort;
9479

9580
#define BENCHMARK_ALL(data_size) \
96-
BENCHMARK(benchmark_insertion_sort<data_size>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128); \
97-
BENCHMARK(benchmark_chunked_insertion_sort<data_size>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128); \
98-
BENCHMARK(benchmark_mine<data_size>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128); \
99-
BENCHMARK(benchmark_standard<data_size>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128)
81+
BENCHMARK(benchmark_sort<data_size, insertion_sort>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128); \
82+
BENCHMARK(benchmark_sort<data_size, chunked_insertion_sort>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128); \
83+
BENCHMARK(benchmark_sort<data_size, new_sort>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128); \
84+
BENCHMARK(benchmark_sort<data_size, sort>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128)
10085

10186
BENCHMARK_ALL(1);
10287
BENCHMARK_ALL(4);

0 commit comments

Comments
 (0)