diff options
Diffstat (limited to 'src/bench')
-rw-r--r-- | src/bench/merkle_root.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/bench/merkle_root.cpp b/src/bench/merkle_root.cpp new file mode 100644 index 0000000000..027b19125d --- /dev/null +++ b/src/bench/merkle_root.cpp @@ -0,0 +1,26 @@ +// Copyright (c) 2016 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.h" + +#include "uint256.h" +#include "random.h" +#include "consensus/merkle.h" + +static void MerkleRoot(benchmark::State& state) +{ + FastRandomContext rng(true); + std::vector<uint256> leaves; + leaves.resize(9001); + for (auto& item : leaves) { + item = rng.rand256(); + } + while (state.KeepRunning()) { + bool mutation = false; + uint256 hash = ComputeMerkleRoot(leaves, &mutation); + leaves[mutation] = hash; + } +} + +BENCHMARK(MerkleRoot, 800); |