elements/src/bench
Suhas Daftuar 7fb62f7db6 Apply mempool changeset transactions directly into the mempool
Rather than individually calling addUnchecked for each transaction added in a
changeset (after removing all the to-be-removed transactions), instead we can
take advantage of boost::multi_index's splicing features to extract and insert
entries directly from the staging multi_index into mapTx.

This has the immediate advantage of saving allocation overhead for mempool
entries which have already been allocated once. This also means that the memory
locations of mempool entries will not change when transactions go from staging
to the main mempool.

Additionally, eliminate addUnchecked and require all new transactions to enter
the mempool via a CTxMemPoolChangeSet.
2024-11-13 13:26:56 -05:00
..
data Add deserialize + CheckBlock benchmarks, and a full block hex 2016-11-09 11:27:59 -08:00
addrman.cpp addrman: change Select to support multiple networks 2024-09-10 12:58:54 -03:00
base58.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
bech32.cpp refactor: Hand-replace some ParseHex -> ""_hex 2024-08-28 19:11:59 +02:00
bench.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
bench.h bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
bench_bitcoin.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
bip324_ecdh.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
block_assemble.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
ccoins_caching.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
chacha20.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
checkblock.cpp test: Use span for raw data 2024-09-05 10:57:19 +02:00
checkblockindex.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
checkqueue.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
cluster_linearize.cpp clusterlin: make DepGraph::AddDependency support multiple dependencies at once 2024-10-07 13:47:52 -04:00
CMakeLists.txt bench: Add basic CheckEphemeralSpends benchmark 2024-11-12 09:41:24 -05:00
coin_selection.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
crypto_hash.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
descriptors.cpp Merge bitcoin/bitcoin#22838: descriptors: Be able to specify change and receiving in a single descriptor string 2024-08-28 15:56:15 +01:00
disconnected_transactions.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
duplicate_inputs.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
ellswift.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
examples.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
gcs_filter.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
hashpadding.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
index_blockfilter.cpp scripted-diff: Replace ParseHex[<std::byte>]("str") -> "str"_hex[_u8] 2024-08-28 19:11:59 +02:00
load_external.cpp test: Use span for raw data 2024-09-05 10:57:19 +02:00
lockedpool.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
logging.cpp bench: Remove redundant logging benchmarks 2024-09-05 07:17:22 +02:00
mempool_ephemeral_spends.cpp Apply mempool changeset transactions directly into the mempool 2024-11-13 13:26:56 -05:00
mempool_eviction.cpp Apply mempool changeset transactions directly into the mempool 2024-11-13 13:26:56 -05:00
mempool_stress.cpp Apply mempool changeset transactions directly into the mempool 2024-11-13 13:26:56 -05:00
merkle_root.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
nanobench.cpp Replace current benchmarking framework with nanobench 2020-06-13 12:24:18 +02:00
nanobench.h bench: Update nanobench to 4.3.11 2023-11-14 20:22:12 +01:00
parse_hex.cpp Add benchmark for TryParseHex 2024-02-28 17:23:54 +00:00
peer_eviction.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
poly1305.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
pool.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
prevector.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
random.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
readblock.cpp test: Use span for raw data 2024-09-05 10:57:19 +02:00
rollingbloom.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
rpc_blockchain.cpp test: Use span for raw data 2024-09-05 10:57:19 +02:00
rpc_mempool.cpp Apply mempool changeset transactions directly into the mempool 2024-11-13 13:26:56 -05:00
sign_transaction.cpp Merge bitcoin/bitcoin#30571: test: [refactor] Use m_rng directly 2024-08-28 16:56:32 +01:00
streams_findbyte.cpp streams: cache file position within AutoFile 2024-09-13 07:35:41 -04:00
strencodings.cpp test: Use span for raw data 2024-09-05 10:57:19 +02:00
util_time.cpp refactor: Remove unused GetTimeMillis 2023-05-08 12:40:48 +02:00
verify_script.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
wallet_balance.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
wallet_create.cpp scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h 2024-10-10 12:22:12 +02:00
wallet_create_tx.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00
wallet_ismine.cpp scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h 2024-10-10 12:22:12 +02:00
wallet_loading.cpp scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h 2024-10-10 12:22:12 +02:00
wallet_migration.cpp bench: add coverage for wallet migration process 2024-10-21 08:29:22 -03:00
xor.cpp bench: [refactor] iwyu 2024-08-27 07:33:59 +02:00