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