summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@yahooinc.com>2023-06-26 12:10:33 +0000
committerHåvard Pettersen <havardpe@yahooinc.com>2023-06-26 12:10:33 +0000
commit0716bd52e13fcb5526b9ab7af38836cb3eddb11e (patch)
tree18c4d46b6d9f36833fc29e2b829a48933cd926a8
parent9a3c640020fbac38fbfde33f342f367373f0948f (diff)
add comment
-rw-r--r--vespalib/src/tests/rw_spin_lock/rw_spin_lock_test.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/vespalib/src/tests/rw_spin_lock/rw_spin_lock_test.cpp b/vespalib/src/tests/rw_spin_lock/rw_spin_lock_test.cpp
index eb712c67aff..afd18a13d2e 100644
--- a/vespalib/src/tests/rw_spin_lock/rw_spin_lock_test.cpp
+++ b/vespalib/src/tests/rw_spin_lock/rw_spin_lock_test.cpp
@@ -24,6 +24,23 @@ size_t state_loop = 1;
//-----------------------------------------------------------------------------
+/**
+ * Estimates the 80th percentile by throwing away the 2 best samples
+ * in each set of 10 samples, using the best remaining sample as a
+ * representative for the set. Representatives are hierarchically
+ * matched against representatives from other sample sets. Result
+ * extraction is simplified in that it does not try to estimate the
+ * actual 80th percentile, but rather tries to drop the best samples
+ * if possible.
+ *
+ * The goal is to have a more robust way of combining repeated
+ * micro-benchmark samples than simply using minimum time. With simple
+ * single-threaded CPU-bound tasks, minimum time is a good measure of
+ * how expensive something is, but when we start benchmarking
+ * operations that may conflict with themselves, we do not want to
+ * account for being super lucky. However, we still want to account
+ * for the benchmark conditions being as good as possible.
+ **/
struct Est80P {
struct Level {
int cnt;