bench: Add a benchmark for wallet loading #24913

pull achow101 wants to merge 1 commits into bitcoin:master from achow101:bench-wallet-load changing 2 files +84 −0
  1. achow101 commented at 9:08 pm on April 18, 2022: member
    I’ve been working on some improvements to wallet loading performance and it’s useful to have a benchmark to check whether these improvements are actually improvements.
  2. bench: Add a benchmark for wallet loading 464a162817
  3. achow101 added the label Tests on Apr 18, 2022
  4. w0xlt approved
  5. w0xlt commented at 9:36 pm on April 18, 2022: contributor
    ACK 464a162
  6. MarcoFalke approved
  7. jarolrod commented at 8:03 am on April 19, 2022: member
  8. MarcoFalke merged this on Apr 19, 2022
  9. MarcoFalke closed this on Apr 19, 2022

  10. fanquake commented at 12:43 pm on April 19, 2022: member
    This has added minutes of runtime to ./src/bench/bench_bitcoin, at least when run on macOS. I assume it needs to be modified use something like -unsafesqlitesync.
  11. achow101 commented at 1:46 pm on April 19, 2022: member

    I assume it needs to be modified use something like -unsafesqlitesync.

    I considered that, but thought it would be preferable to benchmark the actual use rather than test-optimized use.

  12. fanquake commented at 3:20 pm on April 19, 2022: member

    That’s fine, but it can’t remain this slow as long as running ./src/bench/bench_bitcoin is part of make check. I underestimated how long it was actually taking. An invocation of ./bench_bitcoin just took 17 minutes:

     0time src/bench/bench_bitcoin                                               
     1
     2|               ns/op |                op/s |    err% |     total | benchmark
     3|--------------------:|--------------------:|--------:|----------:|:----------
     4|       43,566,102.00 |               22.95 |    2.2% |      0.49 | `AddrManAdd`
     5|      116,815,336.00 |                8.56 |    1.9% |      1.29 | `AddrManAddThenGood`
     6<trimmed>
     7|               ns/op |                op/s |    err% |     total | benchmark
     8|--------------------:|--------------------:|--------:|----------:|:----------
     9|               29.94 |       33,402,338.83 |   12.9% |      0.01 | :wavy_dash: `SipHash_32b` (Unstable with ~31,263.6 iters. Increase `minEpochIterations` to e.g. 312636)
    10|                9.02 |      110,848,661.52 |    7.1% |      0.02 | :wavy_dash: `Trig` (Unstable with ~183,410.9 iters. Increase `minEpochIterations` to e.g. 1834109)
    11|           90,910.30 |           10,999.85 |    2.7% |      0.01 | `VerifyNestedIfScript`
    12|           96,822.20 |           10,328.21 |   14.1% |      0.01 | :wavy_dash: `VerifyScriptBench` (Unstable with ~9.2 iters. Increase `minEpochIterations` to e.g. 92)
    13|            8,326.47 |          120,098.92 |    0.4% |      0.01 | `WalletBalanceClean`
    14|          197,664.75 |            5,059.07 |    0.1% |      0.01 | `WalletBalanceDirty`
    15|            8,405.32 |          118,972.29 |    2.3% |      0.01 | `WalletBalanceMine`
    16|               37.50 |       26,669,181.90 |    0.1% |      0.01 | `WalletBalanceWatch`
    17|      839,372,226.90 |                1.19 |    1.6% |    204.41 | `WalletLoadingDescriptors`
    18|      273,978,457.64 |                3.65 |    0.6% |     33.45 | `WalletLoadingLegacy`
    19src/bench/bench_bitcoin  177.51s user 38.43s system 20% cpu 17:29.47 total
    20``
    
  13. hebasto commented at 3:57 pm on April 19, 2022: member

    That’s fine, but it can’t remain this slow as long as running ./src/bench/bench_bitcoin is part of make check. I underestimated how long it was actually taking. An invocation of ./bench_bitcoin just took 17 minutes:

    Same here…

  14. achow101 commented at 5:02 pm on April 19, 2022: member
    See #24924
  15. sidhujag referenced this in commit 74b1abfb7d on Apr 19, 2022
  16. DrahtBot locked this on Apr 19, 2023

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-10-04 19:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me