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
---------------------
More benchmarks are needed for, in no particular order:
- Script Validation
- Coins database
- Memory pool
- Cuckoo Cache
- P2P throughput
Benchmarks help with monitoring for performance regressions and can act as a
scope for future performance improvements. They should cover components that
impact performance critical functions of the system. Functions are performance
critical if their performance impacts users and the cost associated with a
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
--------------------