Benchmark Merkle root computation
This commit is contained in:
parent
6b824c090f
commit
0df017889b
2 changed files with 27 additions and 0 deletions
|
@ -21,6 +21,7 @@ bench_bench_bitcoin_SOURCES = \
|
|||
bench/rollingbloom.cpp \
|
||||
bench/crypto_hash.cpp \
|
||||
bench/ccoins_caching.cpp \
|
||||
bench/merkle_root.cpp \
|
||||
bench/mempool_eviction.cpp \
|
||||
bench/verify_script.cpp \
|
||||
bench/base58.cpp \
|
||||
|
|
26
src/bench/merkle_root.cpp
Normal file
26
src/bench/merkle_root.cpp
Normal file
|
@ -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);
|
Loading…
Reference in a new issue