mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-10 10:52:31 -05:00
![Ava Chow](/assets/img/avatar_default.png)
1c4b9cbe90
bench: add readblock benchmark (Andrew Toth) Pull request description: Requested in https://github.com/bitcoin/bitcoin/pull/13151#issuecomment-385962450. See https://github.com/bitcoin/bitcoin/pull/26415 and https://github.com/bitcoin/bitcoin/pull/21319. Benchmarking shows a >50x increase in speed on both nvme and spinning disk. Benchmark results: | ns/op | op/s | err% | ins/op | cyc/op | IPC | bra/op | miss% | total | benchmark |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:---------- | 5,377,375.00 | 185.96 | 0.2% | 60,125,513.00 | 11,633,676.00 | 5.168 | 3,588,800.00 | 0.4% | 0.09 | `ReadBlockFromDiskTest` | ns/op | op/s | err% | ins/op | cyc/op | IPC | bra/op | miss% | total | benchmark |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:---------- | 89,945.58 | 11,117.83 | 0.7% | 12,743.90 | 64,530.33 | 0.197 | 2,595.20 | 0.2% | 0.01 | `ReadRawBlockFromDiskTest` ACKs for top commit: maflcko: lgtm ACK1c4b9cbe90
achow101: ACK1c4b9cbe90
TheCharlatan: ACK1c4b9cbe90
Tree-SHA512: 71dbcd6c7e2be97eb3001e35d0a95ef8e0c9b10dc9193025c7f8e11a09017fa2fbf89489b686353cd88fb409fb729fe2c4a25c567d2988f64c9c164ab09fba9f
106 lines
3 KiB
Text
106 lines
3 KiB
Text
# Copyright (c) 2015-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.
|
|
|
|
bin_PROGRAMS += bench/bench_bitcoin
|
|
BENCH_SRCDIR = bench
|
|
BENCH_BINARY = bench/bench_bitcoin$(EXEEXT)
|
|
|
|
RAW_BENCH_FILES = \
|
|
bench/data/block413567.raw
|
|
GENERATED_BENCH_FILES = $(RAW_BENCH_FILES:.raw=.raw.h)
|
|
|
|
bench_bench_bitcoin_SOURCES = \
|
|
$(RAW_BENCH_FILES) \
|
|
bench/addrman.cpp \
|
|
bench/base58.cpp \
|
|
bench/bech32.cpp \
|
|
bench/bench.cpp \
|
|
bench/bench.h \
|
|
bench/bench_bitcoin.cpp \
|
|
bench/bip324_ecdh.cpp \
|
|
bench/block_assemble.cpp \
|
|
bench/ccoins_caching.cpp \
|
|
bench/chacha20.cpp \
|
|
bench/checkblock.cpp \
|
|
bench/checkqueue.cpp \
|
|
bench/crypto_hash.cpp \
|
|
bench/data.cpp \
|
|
bench/data.h \
|
|
bench/descriptors.cpp \
|
|
bench/disconnected_transactions.cpp \
|
|
bench/duplicate_inputs.cpp \
|
|
bench/ellswift.cpp \
|
|
bench/examples.cpp \
|
|
bench/gcs_filter.cpp \
|
|
bench/hashpadding.cpp \
|
|
bench/load_external.cpp \
|
|
bench/lockedpool.cpp \
|
|
bench/logging.cpp \
|
|
bench/mempool_eviction.cpp \
|
|
bench/mempool_stress.cpp \
|
|
bench/merkle_root.cpp \
|
|
bench/nanobench.cpp \
|
|
bench/nanobench.h \
|
|
bench/peer_eviction.cpp \
|
|
bench/poly1305.cpp \
|
|
bench/pool.cpp \
|
|
bench/prevector.cpp \
|
|
bench/readblock.cpp \
|
|
bench/rollingbloom.cpp \
|
|
bench/rpc_blockchain.cpp \
|
|
bench/rpc_mempool.cpp \
|
|
bench/streams_findbyte.cpp \
|
|
bench/strencodings.cpp \
|
|
bench/util_time.cpp \
|
|
bench/verify_script.cpp \
|
|
bench/xor.cpp
|
|
|
|
nodist_bench_bench_bitcoin_SOURCES = $(GENERATED_BENCH_FILES)
|
|
|
|
bench_bench_bitcoin_CPPFLAGS = $(AM_CPPFLAGS) $(BITCOIN_INCLUDES) $(BOOST_CPPFLAGS) $(EVENT_CFLAGS) $(EVENT_PTHREADS_CFLAGS) -I$(builddir)/bench/
|
|
bench_bench_bitcoin_CXXFLAGS = $(AM_CXXFLAGS) $(PIE_FLAGS)
|
|
bench_bench_bitcoin_LDFLAGS = $(RELDFLAGS) $(AM_LDFLAGS) $(LIBTOOL_APP_LDFLAGS) $(PTHREAD_FLAGS)
|
|
bench_bench_bitcoin_LDADD = \
|
|
$(LIBTEST_UTIL) \
|
|
$(LIBBITCOIN_NODE) \
|
|
$(LIBBITCOIN_WALLET) \
|
|
$(LIBBITCOIN_COMMON) \
|
|
$(LIBBITCOIN_UTIL) \
|
|
$(LIBBITCOIN_CONSENSUS) \
|
|
$(LIBBITCOIN_CRYPTO) \
|
|
$(LIBLEVELDB) \
|
|
$(LIBMEMENV) \
|
|
$(LIBSECP256K1) \
|
|
$(LIBUNIVALUE) \
|
|
$(EVENT_PTHREADS_LIBS) \
|
|
$(EVENT_LIBS) \
|
|
$(MINIUPNPC_LIBS) \
|
|
$(NATPMP_LIBS)
|
|
|
|
if ENABLE_ZMQ
|
|
bench_bench_bitcoin_LDADD += $(LIBBITCOIN_ZMQ) $(ZMQ_LIBS)
|
|
endif
|
|
|
|
if ENABLE_WALLET
|
|
bench_bench_bitcoin_SOURCES += bench/coin_selection.cpp
|
|
bench_bench_bitcoin_SOURCES += bench/wallet_balance.cpp
|
|
bench_bench_bitcoin_SOURCES += bench/wallet_create.cpp
|
|
bench_bench_bitcoin_SOURCES += bench/wallet_loading.cpp
|
|
bench_bench_bitcoin_SOURCES += bench/wallet_create_tx.cpp
|
|
bench_bench_bitcoin_LDADD += $(BDB_LIBS) $(SQLITE_LIBS)
|
|
endif
|
|
|
|
CLEAN_BITCOIN_BENCH = bench/*.gcda bench/*.gcno $(GENERATED_BENCH_FILES)
|
|
|
|
CLEANFILES += $(CLEAN_BITCOIN_BENCH)
|
|
|
|
bench/data.cpp: bench/data/block413567.raw.h
|
|
|
|
bitcoin_bench: $(BENCH_BINARY)
|
|
|
|
bench: $(BENCH_BINARY) FORCE
|
|
$(BENCH_BINARY)
|
|
|
|
bitcoin_bench_clean : FORCE
|
|
rm -f $(CLEAN_BITCOIN_BENCH) $(bench_bench_bitcoin_OBJECTS) $(BENCH_BINARY)
|