Jaromir Vanek
fb9a167a55
Add 95% confidence intervals to db_bench output (#9882)
Summary:
Enhancing `db_bench` output with 95% statistical confidence intervals for better performance evaluation. The goal is to unambiguously separate random variance when running benchmark over multiple iterations.
Output enhanced with confidence intervals exposed in brackets:
```
$ ./db_bench --benchmarks=fillseq[-X10]
Running benchmark for 10 times
fillseq : 4.961 micros/op 201578 ops/sec; 22.3 MB/s
fillseq : 5.030 micros/op 198824 ops/sec; 22.0 MB/s
fillseq [AVG 2 runs] : 200201 (± 2698) ops/sec; 22.1 (± 0.3) MB/sec
fillseq : 4.963 micros/op 201471 ops/sec; 22.3 MB/s
fillseq [AVG 3 runs] : 200624 (± 1765) ops/sec; 22.2 (± 0.2) MB/sec
fillseq : 5.035 micros/op 198625 ops/sec; 22.0 MB/s
fillseq [AVG 4 runs] : 200124 (± 1586) ops/sec; 22.1 (± 0.2) MB/sec
fillseq : 4.979 micros/op 200861 ops/sec; 22.2 MB/s
fillseq [AVG 5 runs] : 200272 (± 1262) ops/sec; 22.2 (± 0.1) MB/sec
fillseq : 4.893 micros/op 204367 ops/sec; 22.6 MB/s
fillseq [AVG 6 runs] : 200954 (± 1688) ops/sec; 22.2 (± 0.2) MB/sec
fillseq : 4.914 micros/op 203502 ops/sec; 22.5 MB/s
fillseq [AVG 7 runs] : 201318 (± 1595) ops/sec; 22.3 (± 0.2) MB/sec
fillseq : 4.998 micros/op 200074 ops/sec; 22.1 MB/s
fillseq [AVG 8 runs] : 201163 (± 1415) ops/sec; 22.3 (± 0.2) MB/sec
fillseq : 4.946 micros/op 202188 ops/sec; 22.4 MB/s
fillseq [AVG 9 runs] : 201277 (± 1267) ops/sec; 22.3 (± 0.1) MB/sec
fillseq : 5.093 micros/op 196331 ops/sec; 21.7 MB/s
fillseq [AVG 10 runs] : 200782 (± 1491) ops/sec; 22.2 (± 0.2) MB/sec
fillseq [AVG 10 runs] : 200782 (± 1491) ops/sec; 22.2 (± 0.2) MB/sec
fillseq [MEDIAN 10 runs] : 201166 ops/sec; 22.3 MB/s
```
For more explicit interval representation, use `--confidence_interval_only` flag:
```
$ ./db_bench --benchmarks=fillseq[-X10] --confidence_interval_only
Running benchmark for 10 times
fillseq : 4.935 micros/op 202648 ops/sec; 22.4 MB/s
fillseq : 5.078 micros/op 196943 ops/sec; 21.8 MB/s
fillseq [CI95 2 runs] : (194205, 205385) ops/sec; (21.5, 22.7) MB/sec
fillseq : 5.159 micros/op 193816 ops/sec; 21.4 MB/s
fillseq [CI95 3 runs] : (192735, 202869) ops/sec; (21.3, 22.4) MB/sec
fillseq : 4.947 micros/op 202158 ops/sec; 22.4 MB/s
fillseq [CI95 4 runs] : (194721, 203061) ops/sec; (21.5, 22.5) MB/sec
fillseq : 4.908 micros/op 203756 ops/sec; 22.5 MB/s
fillseq [CI95 5 runs] : (196113, 203615) ops/sec; (21.7, 22.5) MB/sec
fillseq : 5.063 micros/op 197528 ops/sec; 21.9 MB/s
fillseq [CI95 6 runs] : (196319, 202631) ops/sec; (21.7, 22.4) MB/sec
fillseq : 5.214 micros/op 191799 ops/sec; 21.2 MB/s
fillseq [CI95 7 runs] : (194953, 201803) ops/sec; (21.6, 22.3) MB/sec
fillseq : 5.260 micros/op 190095 ops/sec; 21.0 MB/s
fillseq [CI95 8 runs] : (193749, 200937) ops/sec; (21.4, 22.2) MB/sec
fillseq : 5.076 micros/op 196992 ops/sec; 21.8 MB/s
fillseq [CI95 9 runs] : (194134, 200474) ops/sec; (21.5, 22.2) MB/sec
fillseq : 5.388 micros/op 185603 ops/sec; 20.5 MB/s
fillseq [CI95 10 runs] : (192487, 199781) ops/sec; (21.3, 22.1) MB/sec
fillseq [AVG 10 runs] : 196134 (± 3647) ops/sec; 21.7 (± 0.4) MB/sec
fillseq [MEDIAN 10 runs] : 196968 ops/sec; 21.8 MB/sec
```
Pull Request resolved: https://github.com/facebook/rocksdb/pull/9882
Reviewed By: pdillinger
Differential Revision: D35796148
Pulled By: vanekjar
fbshipit-source-id: 8313712d16728ff982b8aff28195ee56622385b8
2022-04-25 14:49:54 -07:00
..
2021-09-01 20:26:28 -07:00
2021-09-29 04:04:40 -07:00
2020-02-20 12:09:57 -08:00
2019-04-18 10:55:01 -07:00
2019-04-18 10:55:01 -07:00
2021-03-02 11:42:27 -08:00
2019-04-18 10:55:01 -07:00
2022-01-28 16:47:08 -08:00
2022-01-12 09:31:12 -08:00
2020-05-29 11:29:23 -07:00
2022-04-20 11:34:20 -07:00
2020-05-12 21:07:55 -07:00
2022-03-01 13:58:02 -08:00
2022-04-25 14:49:54 -07:00
2021-09-07 21:19:27 -07:00
2022-04-06 15:47:09 -07:00
2022-01-12 09:31:12 -08:00
2020-02-20 12:09:57 -08:00
2017-08-03 15:56:46 -07:00
2015-05-22 16:03:39 -07:00
2019-04-18 10:55:01 -07:00
2019-04-18 10:55:01 -07:00
2021-09-29 04:04:40 -07:00
2021-04-01 13:14:51 -07:00
2020-09-23 15:50:26 -07:00
2020-09-23 15:50:26 -07:00
2022-04-22 16:54:43 -07:00
2022-03-18 16:35:51 -07:00
2022-04-22 16:54:43 -07:00
2022-04-22 16:54:43 -07:00
2022-03-18 16:35:51 -07:00
2020-02-20 12:09:57 -08:00
2017-08-03 15:56:46 -07:00
2021-09-01 14:28:58 -07:00
2021-10-18 11:01:06 -07:00
2021-03-02 11:42:27 -08:00
2019-04-18 10:55:01 -07:00
2022-02-14 15:38:32 -08:00
2019-04-18 10:55:01 -07:00
2019-04-18 10:55:01 -07:00
2015-06-19 16:24:36 -07:00
2021-12-29 11:14:42 -08:00
2021-12-29 11:14:42 -08:00
2022-02-08 12:15:35 -08:00
2022-04-18 12:47:16 -07:00
2020-06-08 13:58:28 -07:00
2021-11-19 23:47:43 -08:00
2021-08-24 18:18:36 -07:00
2021-12-10 11:05:35 -08:00
2020-02-20 12:09:57 -08:00
2019-04-18 10:55:01 -07:00
2021-03-02 11:42:27 -08:00
2020-05-29 11:29:23 -07:00
2021-01-25 22:09:11 -08:00