bitcoin/src
Andrew Chow 139ba2bf12
Merge bitcoin/bitcoin#25234: bench: add benchmark for wallet 'AvailableCoins' function.
3a4f8bc242 bench: add benchmark for wallet 'AvailableCoins' function. (furszy)

Pull request description:

  #### Rationale

  `AvailableCoins` is part of several important flows for the wallet; from RPC commands that create transactions like `fundrawtransaction`, `send`, `walletcreatefundedpsbt`, get the available balance, list the available coins with `listunspent` etc. to GUI connected processes that perform the same or similar actions: tx creation, available balance calculation, present the spendable coins in the coin control dialog.

  As we are improving this process in #24699, #25005 and there are more structural changes coming on the way. This benchmark aims to ensure us that, at least, there are no regressions (obviously performance improvements are great but, at least for me, this heads into the direction of having a base metric to compare future structural changes).

  #### Implementation Notes

  There are 5 new benchmarks, one per wallet supported output type (LEGACY, P2SH_SEGWIT, BECH32, BECH32M), plus a multi-output-type wallet benchmark which contains outputs from all the descriptor types.

  The test, by default, fills-up the wallet with 1k transactions, 2k outputs. Mainly to not consume much time if the user just want to verify that no substantial regressions were introduced. But, my expectation for those who are focused on this process is to use a much higher number locally to really note the differences across commits.

ACKs for top commit:
  achow101:
    ACK 3a4f8bc242
  hernanmarino:
    ACK 3a4f8bc242
  aureleoules:
    ACK 3a4f8bc242

Tree-SHA512: d0bb4c165f1efa181b47cb31561e6217eff9135bcd1b6761a7292f9018e456d13d18a1b886c2e2268d35c52f9e1fd8e0f252972424e5c5f00c280620b79c5a1b
2023-01-04 12:11:44 -05:00
..
bench Merge bitcoin/bitcoin#25234: bench: add benchmark for wallet 'AvailableCoins' function. 2023-01-04 12:11:44 -05:00
common scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
compat scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
config
consensus scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
crc32c
crypto scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
index scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
init scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
interfaces scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
ipc scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
kernel refactor: Move txmempool_entry.h --> kernel/mempool_entry.h 2022-11-30 10:37:57 +00:00
leveldb Update leveldb-subtree subtree to latest upstream 2022-09-29 16:43:30 +01:00
logging scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
minisketch Update minisketch subtree to latest upstream 2022-10-23 15:03:04 +01:00
node Merge bitcoin/bitcoin#26289: Use util::Result in for calculating mempool ancestors 2023-01-03 16:30:55 -05:00
policy Merge bitcoin/bitcoin#26289: Use util::Result in for calculating mempool ancestors 2023-01-03 16:30:55 -05:00
primitives scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
qt Merge bitcoin/bitcoin#26661: wallet: Coin Selection, return accurate error messages 2023-01-03 18:53:36 -05:00
rpc Merge bitcoin/bitcoin#26289: Use util::Result in for calculating mempool ancestors 2023-01-03 16:30:55 -05:00
script scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
secp256k1
support scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
test Merge bitcoin/bitcoin#19909: refactor: Remove unused CTxMemPool::clear() helper 2023-01-04 08:44:26 +00:00
univalue scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
util scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
wallet Merge bitcoin/bitcoin#26795: rpc: Correct RPCHelpMan for fundrawtransaction's input_weights field 2023-01-04 11:09:57 +01:00
zmq scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
.bear-tidy-config
.clang-format
.clang-tidy
addrdb.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
addrdb.h
addrman.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
addrman.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
addrman_impl.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
arith_uint256.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
arith_uint256.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
attributes.h
banman.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
banman.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
base58.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
base58.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
bech32.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
bech32.h
bitcoin-chainstate.cpp scripted-diff: rename CChainState -> Chainstate 2022-09-09 11:47:27 -04:00
bitcoin-cli-res.rc
bitcoin-cli.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
bitcoin-tx-res.rc
bitcoin-tx.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
bitcoin-util-res.rc
bitcoin-util.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
bitcoin-wallet-res.rc
bitcoin-wallet.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
bitcoind-res.rc
bitcoind.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
blockencodings.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
blockencodings.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
blockfilter.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
blockfilter.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
chain.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
chain.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
chainparams.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
chainparams.h
chainparamsbase.cpp
chainparamsbase.h
chainparamsseeds.h Merge bitcoin/bitcoin#25853: net: update testnet torv3 hardcoded seeds for 24.x 2022-09-09 10:07:39 +02:00
checkqueue.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
clientversion.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
clientversion.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
coins.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
coins.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
compressor.cpp
compressor.h
core_io.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
core_memusage.h
core_read.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
core_write.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
cuckoocache.h
dbwrapper.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
dbwrapper.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
deploymentinfo.cpp
deploymentinfo.h
deploymentstatus.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
deploymentstatus.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
dummywallet.cpp
external_signer.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
external_signer.h
flatfile.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
flatfile.h
fs.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
fs.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
hash.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
hash.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
headerssync.cpp
headerssync.h
httprpc.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
httprpc.h
httpserver.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
httpserver.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
i2p.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
i2p.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
indirectmap.h
init.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
init.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
key.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
key.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
key_io.cpp
key_io.h
logging.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
logging.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
Makefile.am Merge bitcoin/bitcoin#26298: refactor: Move src/interfaces/*.cpp files to libbitcoin_common.a 2022-12-07 14:54:23 +00:00
Makefile.bench.include Merge bitcoin/bitcoin#16981: Improve runtime performance of --reindex 2022-11-15 19:23:39 -05:00
Makefile.crc32c.include
Makefile.leveldb.include
Makefile.minisketch.include
Makefile.qt.include build: extract $(BOOST_CPPFLAGS) from $(BITCOIN_INCLUDES) 2022-09-13 17:15:17 +01:00
Makefile.qt_locale.include
Makefile.qttest.include build: extract $(BOOST_CPPFLAGS) from $(BITCOIN_INCLUDES) 2022-09-13 17:15:17 +01:00
Makefile.test.include Merge bitcoin/bitcoin#25789: test: clean and extend availablecoins_tests coverage 2023-01-03 12:52:40 -05:00
Makefile.test_fuzz.include [fuzz] Move ConsumeNetAddr to fuzz/util/net.h 2022-11-17 14:52:45 +00:00
Makefile.test_util.include refactor: unify test/util/wallet.h with wallet/test/util.h 2022-11-21 17:30:00 -03:00
Makefile.univalue.include
mapport.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
mapport.h
memusage.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
merkleblock.cpp
merkleblock.h
net.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_permissions.cpp
net_permissions.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_processing.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_processing.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_types.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
net_types.h
netaddress.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
netaddress.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
netbase.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
netbase.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
netgroup.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
netgroup.h
netmessagemaker.h
noui.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
noui.h
outputtype.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
outputtype.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
pow.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
pow.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
prevector.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
protocol.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
protocol.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
psbt.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
psbt.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
pubkey.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
pubkey.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
random.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
random.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
randomenv.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
randomenv.h
rest.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
rest.h
reverse_iterator.h
scheduler.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
scheduler.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
serialize.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
shutdown.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
shutdown.h
signet.cpp
signet.h
span.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
streams.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
sync.cpp
sync.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
threadsafety.h
timedata.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
timedata.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
tinyformat.h clang-tidy: Fix modernize-use-nullptr in headers 2022-12-15 20:58:19 +00:00
torcontrol.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
torcontrol.h
txdb.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
txdb.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
txmempool.cpp Merge bitcoin/bitcoin#19909: refactor: Remove unused CTxMemPool::clear() helper 2023-01-04 08:44:26 +00:00
txmempool.h Merge bitcoin/bitcoin#19909: refactor: Remove unused CTxMemPool::clear() helper 2023-01-04 08:44:26 +00:00
txorphanage.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
txorphanage.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
txrequest.cpp
txrequest.h
uint256.cpp
uint256.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
undo.h
validation.cpp Merge bitcoin/bitcoin#26289: Use util::Result in for calculating mempool ancestors 2023-01-03 16:30:55 -05:00
validation.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
validationinterface.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
validationinterface.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
version.h
versionbits.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
versionbits.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
walletinitinterface.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
warnings.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
warnings.h