Skip to content

Commit a06cb2c

Browse files
committed
[benchmark] Benchmark_Driver: faster iterations
With the faster benchmarks in the Swift Benchmark Suite, we now don’t need to spend a whole 1 second measuring each one of them. So I’m adjusting the Benchmark_Driver to sample each one for 50 ms and gather up to 102 actual runtime values (percentiles + MIN + MAX). In my tests, for most optmized benchmarks, the sample distribution was still roughly comparable with full second mesurements. It is more important to gather samples from multiple independent runs to cover the possible variations in distribution.
1 parent 7c5cead commit a06cb2c

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

benchmark/scripts/Benchmark_Driver

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,8 @@ class BenchmarkDriver(object):
184184
return a
185185

186186
return reduce(merge_results,
187-
[self.run(test, num_iters=1, quantile=20,
187+
[self.run(test, num_iters=1, min_samples=10,
188+
sample_time=0.05, quantile=100,
188189
measure_memory=True, gather_metadata=True)
189190
for _ in range(self.args.independent_samples)])
190191

benchmark/scripts/test_Benchmark_Driver.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -337,12 +337,13 @@ def test_report_quantiles(self):
337337
('/benchmarks/Benchmark_O', 'b', '--quantile=4', '--delta'))
338338

339339
def test_run_benchmark_independent_samples(self):
340-
"""Extract up to 20 measurements from an independent run."""
340+
"""Extract up to 100 measurements from an independent run."""
341341
self.driver.args.independent_samples = 3
342342
r = self.driver.run_independent_samples('b1')
343343
self.assertEqual(self.subprocess_mock.calls.count(
344-
('/benchmarks/Benchmark_O', 'b1', '--num-iters=1', '--memory',
345-
'--meta', '--quantile=20', '--delta')), 3)
344+
('/benchmarks/Benchmark_O', 'b1', '--min-samples=10',
345+
'--num-iters=1', '--sample-time=0.05',
346+
'--memory', '--meta', '--quantile=100', '--delta')), 3)
346347
self.assertEqual(r.num_samples, 3) # results are merged
347348

348349
def test_run_and_log(self):

0 commit comments

Comments
 (0)