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.
47
47
48
48
Notes
49
49
---------------------
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.
56
73
57
74
Going Further
58
75
--------------------
You can’t perform that action at this time.
0 commit comments