git / moonbite-core / src/bench/merkle_root.cpp · raw
// Copyright (c) 2016-2020 The Bitcoin Core developers// Distributed under the MIT software license, see the accompanying// file COPYING or http://www.opensource.org/licenses/mit-license.php.#include <bench/bench.h>#include <consensus/merkle.h>#include <random.h>#include <uint256.h>static void MerkleRoot(benchmark::Bench& bench){ FastRandomContext rng(true); std::vector<uint256> leaves; leaves.resize(9001); for (auto& item : leaves) { item = rng.rand256(); } bench.batch(leaves.size()).unit("leaf").run([&] { bool mutation = false; uint256 hash = ComputeMerkleRoot(std::vector<uint256>(leaves), &mutation); leaves[mutation] = hash; });}BENCHMARK(MerkleRoot);