3#include <benchmark/benchmark.h>
10using namespace benchmark;
16static void BM_WrittenSlotsTreeStack(benchmark::State& state)
18 const size_t stack_size =
static_cast<size_t>(state.range(0));
25 base_tree.insert_indexed_leaves(leaves);
27 for (
auto _ : state) {
29 tree_stack.push(base_tree);
31 for (
size_t i = 0; i < stack_size; ++i) {
32 tree_stack.push(tree_stack.top());
35 for (
size_t i = 0; i < stack_size; ++i) {
38 tree_stack.top() =
std::move(current_tree);
41 benchmark::DoNotOptimize(tree_stack);
42 benchmark::ClobberMemory();
44 if (tree_stack.size() != 1) {
45 state.SkipWithError(
"Stack size is not 1 after unwind");
50BENCHMARK(BM_WrittenSlotsTreeStack)->Arg(1000)->Arg(3000)->Arg(6000)->Arg(9000)->Unit(benchmark::kMicrosecond);
#define MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX
WrittenPublicDataSlotsTree build_public_data_slots_tree()
BENCHMARK(extend_2_to_11)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept