Merge bitcoin/bitcoin#31690: doc: Amend notes on benchmarking

e94c9d1712 [doc] Amend notes on benchmarking (dergoegge)

Pull request description:

  This gives some more context on the motivation and larger picture of benchmarks.

ACKs for top commit:
  l0rinc:
    ACK e94c9d1712
  instagibbs:
    reACK e94c9d1712
  darosior:
    reACK e94c9d1712
  brunoerg:
    reACK e94c9d1712

Tree-SHA512: 2cbf51f283f2efc0938e7021ae48db51fe89caf9ef9780821e99fa745dff839e2d202ca956ce6cc48b8319db304069728e77883feefe486264eb1783a0610c93
This commit is contained in:
merge-script 2025-01-22 16:44:58 +00:00
commit 7b4d072e4f
No known key found for this signature in database
GPG key ID: 2EEB9F5CC09526C1

View file

@ -47,12 +47,29 @@ or using a regex filter to only run certain benchmarks.
Notes Notes
--------------------- ---------------------
More benchmarks are needed for, in no particular order:
- Script Validation Benchmarks help with monitoring for performance regressions and can act as a
- Coins database scope for future performance improvements. They should cover components that
- Memory pool impact performance critical functions of the system. Functions are performance
- Cuckoo Cache critical if their performance impacts users and the cost associated with a
- P2P throughput degradation in performance is high. A non-exhaustive list:
- Initial block download (Cost: slow IBD results in full node operation being
less accessible)
- Block template creation (Cost: slow block template creation may result in
lower fee revenue for miners)
- Block propagation (Cost: slow block propagation may increase the rate of
orphaned blocks and mining centralization)
A change aiming to improve the performance may be rejected when a clear
end-to-end performance improvement cannot be demonstrated. The change might
also be rejected if the code bloat or review/maintenance burden is too high to
justify the improvement.
Benchmarks are ill-suited for testing denial-of-service issues as they are
restricted to the same input set (introducing bias). [Fuzz
tests](/doc/fuzzing.md) are better suited for this purpose, as they are
specifically aimed at exploring the possible input space.
Going Further Going Further
-------------------- --------------------