Skip to content

Commit 651fcb5

Browse files
committed
Update dependencies
1 parent 48cfb42 commit 651fcb5

File tree

5 files changed

+30
-18
lines changed

5 files changed

+30
-18
lines changed

dependencies/numeric-traits

dependencies/operators

dependencies/std_module

source/containers/test/sort/sort_benchmark.cpp

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,26 +21,28 @@ auto DoNotOptimize(auto && value) -> void {
2121
benchmark::DoNotOptimize(value);
2222
}
2323

24+
25+
2426
template<std::size_t size>
2527
struct data {
26-
constexpr explicit data(unsigned value) {
27-
for (auto const n : containers::integer_range(bounded::constant<size>)) {
28-
m[n] = static_cast<std::uint8_t>(value);
29-
}
28+
constexpr explicit data(unsigned value):
29+
m(std::bit_cast<array_t>(value))
30+
{
3031
}
3132
friend constexpr auto operator<=>(data const & lhs, data const & rhs) = default;
32-
containers::array<std::uint8_t, bounded::constant<size>> m;
33+
using array_t = containers::array<std::uint8_t, bounded::constant<size>>;
34+
array_t m;
3335
};
3436

35-
template<std::size_t data_size>
36-
auto benchmark_impl(benchmark::State & state, auto function) -> void {
37+
template<std::size_t data_size, auto function>
38+
auto benchmark_impl(benchmark::State & state) -> void {
3739
auto engine = std::mt19937(std::random_device()());
3840
auto value_distribution = std::uniform_int_distribution<unsigned>();
3941
using container_t = containers::vector<data<data_size>>;
40-
auto container = container_t();
4142
using size_type = containers::range_size_t<container_t>;
4243
auto const size = bounded::assume_in_range<size_type>(state.range(0));
43-
container.reserve(size);
44+
auto container = container_t();
45+
containers::resize(container, size);
4446

4547
for (auto _ : state) {
4648
containers::copy(
@@ -58,9 +60,10 @@ auto benchmark_impl(benchmark::State & state, auto function) -> void {
5860
}
5961
}
6062

63+
#if 0
6164
template<std::size_t data_size>
6265
auto benchmark_chunked_insertion_sort(benchmark::State & state) -> void {
63-
benchmark_impl<data_size>(state, [](auto & range) { return containers::chunked_insertion_sort(range); });
66+
benchmark_impl<data_size>(state, containers::chunked_insertion_sort);
6467
}
6568

6669
template<std::size_t data_size>
@@ -73,6 +76,8 @@ auto benchmark_standard(benchmark::State & state) -> void {
7376
benchmark_impl<data_size>(state, containers::sort);
7477
}
7578

79+
#endif
80+
7681
constexpr auto insertion_sort = [](containers::range auto && r) -> void {
7782
auto const first = containers::begin(r);
7883
auto const last = containers::end(r);
@@ -87,16 +92,23 @@ constexpr auto insertion_sort = [](containers::range auto && r) -> void {
8792
}
8893
};
8994

95+
#if 0
96+
9097
template<std::size_t data_size>
9198
auto benchmark_insertion_sort(benchmark::State & state) -> void {
9299
benchmark_impl<data_size>(state, insertion_sort);
93100
}
94101

102+
#endif
103+
104+
using containers::chunked_insertion_sort;
105+
using containers::new_sort;
106+
using containers::sort;
95107
#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)
108+
BENCHMARK(benchmark_impl<data_size, insertion_sort>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128); \
109+
BENCHMARK(benchmark_impl<data_size, chunked_insertion_sort>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128); \
110+
BENCHMARK(benchmark_impl<data_size, new_sort>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128); \
111+
BENCHMARK(benchmark_impl<data_size, sort>)->DenseRange(1, 5, 1)->Arg(16)->Arg(25)->Arg(64)->Arg(128)
100112

101113
BENCHMARK_ALL(1);
102114
BENCHMARK_ALL(4);

0 commit comments

Comments
 (0)