// 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 #include #include #include static void MerkleRoot(benchmark::Bench& bench) { FastRandomContext rng(true); std::vector 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(leaves), &mutation); leaves[mutation] = hash; }); } BENCHMARK(MerkleRoot);