diff options
| author | Pieter Wuille <[email protected]> | 2017-09-27 17:36:56 -0700 |
|---|---|---|
| committer | Pieter Wuille <[email protected]> | 2018-05-08 07:44:13 -0700 |
| commit | 0df017889b4f61860092e1d54e271092cce55f62 (patch) | |
| tree | f28529b1a0095131a8a57c542cf001a0eeb06322 /src/bench | |
| parent | Merge #13184: RPC Docs: gettxout*: clarify bestblock and unspent counts (diff) | |
| download | discoin-0df017889b4f61860092e1d54e271092cce55f62.tar.xz discoin-0df017889b4f61860092e1d54e271092cce55f62.zip | |
Benchmark Merkle root computation
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 000000000..027b19125 --- /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); |