0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-06 10:18:44 -05:00
bitcoin-bitcoin-core/src/bench
MarcoFalke a5224be645
Merge #17292: Add new mempool benchmarks for a complex pool
b0c774b48a Add new mempool benchmarks for a complex pool (Jeremy Rubin)

Pull request description:

  This PR is related to #17268.

  It adds a mempool stress test which makes a really big complicated tx graph, and then, similar to mempool_eviction test, trims the size.

  The test setup is to make 100 original transactions with Rand(10)+2 outputs each.

  Then, 800 times:

  we create a new transaction with Rand(10) + 1 parents that are randomly sampled from all existing transactions (with unspent outputs). From each such parent, we then select Rand(remaining outputs) +1 50% of the time, or 1 outputs 50% of the time.

  Then, we trim the size to 3/4. Then we trim it to just a single transaction.

  This creates, hopefully, a big bundle of transactions with lots of complex structure, that should really put a strain on the mempool graph algorithms.

  This ends up testing both the descendant and ancestor tracking.

  I don't love that the test is "unstable". That is, in order to compare this test to another, you really can't modify any of the internal state because it will have a different order of invocations of the deterministic randomness. However, it certainly suffices for comparing branches.

Top commit has no ACKs.

Tree-SHA512: cabe96b849b9885878e20eec558915e921d49e6ed1e4b011b22ca191b4c99aa28930a8b963784c9adf78cc8b034a655513f7a0da865e280a1214ae15ebb1d574
2019-11-01 18:08:41 -04:00
..
data Add deserialize + CheckBlock benchmarks, and a full block hex 2016-11-09 11:27:59 -08:00
.gitignore Ignore bench_bitcoin binary. 2015-10-06 17:46:12 +02:00
base58.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
bech32.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
bench.cpp [refactor] interfaces: Add missing LockAnnotation for cs_main 2019-05-13 14:46:01 -04:00
bench.h Remove unused includes 2019-10-15 22:56:43 +00:00
bench_bitcoin.cpp Merge #17279: refactor: Remove redundant c_str() calls in formatting 2019-10-28 15:10:06 -04:00
block_assemble.cpp [validation] Remove fMissingInputs from AcceptToMemoryPool() 2019-10-29 15:46:45 -04:00
ccoins_caching.cpp Move various SigningProviders to signingprovider.{cpp,h} 2019-07-09 16:20:18 -04:00
chacha20.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
chacha_poly_aead.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
checkblock.cpp [validation] Add CValidationState subclasses 2019-10-29 15:46:45 -04:00
checkqueue.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
coin_selection.cpp Pass NodeContext, ConnMan, BanMan references more places 2019-10-28 10:30:51 -04:00
crypto_hash.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
data.cpp bench: Move generated data to a dedicated translation unit 2019-07-02 18:11:15 +01:00
data.h bench: Move generated data to a dedicated translation unit 2019-07-02 18:11:15 +01:00
duplicate_inputs.cpp [validation] Add CValidationState subclasses 2019-10-29 15:46:45 -04:00
examples.cpp Make reasoning about dependencies easier by not including unused dependencies 2019-06-02 17:15:23 +02:00
gcs_filter.cpp blockfilter: Refactor GCS params into struct. 2018-11-06 09:12:54 -08:00
lockedpool.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
mempool_eviction.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
mempool_stress.cpp Add new mempool benchmarks for a complex pool 2019-10-28 15:58:48 -07:00
merkle_root.cpp Update copyright headers to 2018 2018-07-27 07:15:02 -04:00
poly1305.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
prevector.cpp Drop defunct IS_TRIVIALLY_CONSTRUCTIBLE handling from prevector.h 2018-11-14 12:19:04 -05:00
rollingbloom.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
rpc_blockchain.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
rpc_mempool.cpp Remove unused includes 2019-10-15 22:56:43 +00:00
util_time.cpp util: Add type safe GetTime 2019-05-23 14:12:32 -04:00
verify_script.cpp refactor: test/bench: dedup Build{Crediting,Spending}Transaction() 2019-10-23 01:59:32 +02:00
wallet_balance.cpp Pass NodeContext, ConnMan, BanMan references more places 2019-10-28 10:30:51 -04:00