File tree Expand file tree Collapse file tree 1 file changed +23
-6
lines changed
Expand file tree Collapse file tree 1 file changed +23
-6
lines changed Original file line number Diff line number Diff line change @@ -47,12 +47,29 @@ or using a regex filter to only run certain benchmarks.
4747
4848Notes
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
5774Going Further
5875--------------------
You can’t perform that action at this time.
0 commit comments