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/rollingbloom.cpp \
|
||||||
bench/crypto_hash.cpp \
|
bench/crypto_hash.cpp \
|
||||||
bench/ccoins_caching.cpp \
|
bench/ccoins_caching.cpp \
|
||||||
|
bench/merkle_root.cpp \
|
||||||
bench/mempool_eviction.cpp \
|
bench/mempool_eviction.cpp \
|
||||||
bench/verify_script.cpp \
|
bench/verify_script.cpp \
|
||||||
bench/base58.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