Skip to content

Commit 7b4d072

Browse files
committed
Merge bitcoin/bitcoin#31690: doc: Amend notes on benchmarking
e94c9d1 [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 e94c9d1 instagibbs: reACK e94c9d1 darosior: reACK e94c9d1 brunoerg: reACK e94c9d1 Tree-SHA512: 2cbf51f283f2efc0938e7021ae48db51fe89caf9ef9780821e99fa745dff839e2d202ca956ce6cc48b8319db304069728e77883feefe486264eb1783a0610c93
2 parents 523520f + e94c9d1 commit 7b4d072

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

doc/benchmarking.md

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,29 @@ or using a regex filter to only run certain benchmarks.
4747

4848
Notes
4949
---------------------
50-
More benchmarks are needed for, in no particular order:
51-
- Script Validation
52-
- Coins database
53-
- Memory pool
54-
- Cuckoo Cache
55-
- P2P throughput
50+
51+
Benchmarks help with monitoring for performance regressions and can act as a
52+
scope for future performance improvements. They should cover components that
53+
impact performance critical functions of the system. Functions are performance
54+
critical if their performance impacts users and the cost associated with a
55+
degradation in performance is high. A non-exhaustive list:
56+
57+
- Initial block download (Cost: slow IBD results in full node operation being
58+
less accessible)
59+
- Block template creation (Cost: slow block template creation may result in
60+
lower fee revenue for miners)
61+
- Block propagation (Cost: slow block propagation may increase the rate of
62+
orphaned blocks and mining centralization)
63+
64+
A change aiming to improve the performance may be rejected when a clear
65+
end-to-end performance improvement cannot be demonstrated. The change might
66+
also be rejected if the code bloat or review/maintenance burden is too high to
67+
justify the improvement.
68+
69+
Benchmarks are ill-suited for testing denial-of-service issues as they are
70+
restricted to the same input set (introducing bias). [Fuzz
71+
tests](/doc/fuzzing.md) are better suited for this purpose, as they are
72+
specifically aimed at exploring the possible input space.
5673

5774
Going Further
5875
--------------------

0 commit comments

Comments
 (0)