aboutsummaryrefslogtreecommitdiff
path: root/test/functional/test_framework/test_shell.py
diff options
context:
space:
mode:
authorMarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>2022-12-21 09:05:59 +0100
committerMarcoFalke <*~=`'#}+{/-|&$^_@721217.xyz>2022-12-21 09:06:24 +0100
commit0139a0d5c02a8099a774aa7f94019bc816f01221 (patch)
tree6bc1b00fc96652b273c9026803ba177dce7c1347 /test/functional/test_framework/test_shell.py
parent8456bfac6ba2dcca42a03d3374c12e1a3f009106 (diff)
parent31fdc54dba92fe9d7d8289f1e4380082838a74a9 (diff)
Merge bitcoin/bitcoin#26722: test: speed up the two slowest functional tests by 18-35% via `keypoolrefill()`
31fdc54dba92fe9d7d8289f1e4380082838a74a9 test: speed up wallet_fundrawtransaction.py and wallet_sendall.py (kdmukai) Pull request description: ## Problem `wallet_fundrawtransaction.py` and `wallet_sendall.py` are the two slowest functional tests *when running without a RAM disk*. ``` # M1 MacBook Pro timings wallet_fundrawtransaction.py --descriptors | ✓ Passed | 55 s wallet_fundrawtransaction.py --legacy-wallet | ✓ Passed | 381 s wallet_sendall.py --descriptors | ✓ Passed | 43 s wallet_sendall.py --legacy-wallet | ✓ Passed | 327 s ``` In each case, the majority of the time is spent iterating through 1500 to 1600 `getnewaddress()` calls. This is particularly slow in the `--legacy-wallet` runs. see: https://github.com/bitcoin/bitcoin/blob/master/test/functional/wallet_fundrawtransaction.py#L986-L987 see: https://github.com/bitcoin/bitcoin/blob/master/test/functional/wallet_sendall.py#L324 ## Solution Pre-fill the keypool before iterating through those `getnewaddress()` calls. With this change, the execution time drops to: ``` wallet_fundrawtransaction.py --descriptors | ✓ Passed | 52 s # -3s diff wallet_fundrawtransaction.py --legacy-wallet | ✓ Passed | 291 s # -90s diff wallet_sendall.py --descriptors | ✓ Passed | 27 s # -16s diff wallet_sendall.py --legacy-wallet | ✓ Passed | 228 s # -99s diff ``` --- Tagging @ Sjors as he had encouraged me to take a look at speeding up the tests. ACKs for top commit: achow101: ACK 31fdc54dba92fe9d7d8289f1e4380082838a74a9 Tree-SHA512: e8dd89323551779832a407d068977c827c09dff55c1079d3c19aab39fcce6957df22b1da797ed7aa3bc2f6dd22fdf9e6f5e1a9a0200fdb16ed6042fc5f6dd992
Diffstat (limited to 'test/functional/test_framework/test_shell.py')
0 files changed, 0 insertions, 0 deletions