Skip to content

Commit 0f25849

Browse files
committed
[benchmark] Parse setup time from verbose log
1 parent 78159e1 commit 0f25849

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

Diff for: benchmark/scripts/compare_perf_tests.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ def __init__(self, csv_row):
236236
self.max_rss = ( # Maximum Resident Set Size (B)
237237
int(csv_row[8]) if len(csv_row) > 8 else None)
238238
self.samples = None
239+
self.setup = None
239240

240241
def __repr__(self):
241242
"""Short summary for debugging purposes."""
@@ -274,6 +275,7 @@ def minimum(a, b): # work around None being less than everything
274275
return (min(filter(lambda x: x is not None, [a, b])) if any([a, b])
275276
else None)
276277
self.max_rss = minimum(self.max_rss, r.max_rss)
278+
self.setup = minimum(self.setup, r.setup)
277279

278280

279281
class ResultComparison(object):
@@ -318,7 +320,7 @@ def __init__(self):
318320
def _reset(self):
319321
"""Reset parser to the default state for reading a new result."""
320322
self.samples, self.num_iters = [], 1
321-
self.max_rss, self.mem_pages = None, None
323+
self.setup, self.max_rss, self.mem_pages = None, None, None
322324
self.voluntary_cs, self.involuntary_cs = None, None
323325

324326
# Parse lines like this
@@ -332,6 +334,7 @@ def _append_result(self, result):
332334
if len(columns) < 8:
333335
columns = result.split()
334336
r = PerformanceTestResult(columns)
337+
r.setup = self.setup
335338
r.max_rss = r.max_rss or self.max_rss
336339
r.mem_pages = self.mem_pages
337340
r.voluntary_cs = self.voluntary_cs
@@ -360,6 +363,9 @@ def _store_memory_stats(self, max_rss, mem_pages):
360363
self.samples.append(
361364
Sample(int(i), int(self.num_iters), int(runtime)))),
362365

366+
re.compile(r'\s+SetUp (\d+)'):
367+
(lambda self, setup: setattr(self, 'setup', int(setup))),
368+
363369
# Environmental statistics: memory usage and context switches
364370
re.compile(r'\s+MAX_RSS \d+ - \d+ = (\d+) \((\d+) pages\)'):
365371
_store_memory_stats,

Diff for: benchmark/scripts/test_compare_perf_tests.py

+12-8
Original file line numberDiff line numberDiff line change
@@ -221,23 +221,25 @@ def test_merge(self):
221221
1,AngryPhonebook,1,12270,12270,12270,0,12270,10498048""".split('\n')[1:]
222222
results = map(PerformanceTestResult,
223223
[line.split(',') for line in tests])
224+
results[2].setup = 9
225+
results[3].setup = 7
224226

225227
def as_tuple(r):
226228
return (r.num_samples, r.min, r.max, round(r.mean, 2),
227-
r.sd, r.median, r.max_rss)
229+
r.sd, r.median, r.max_rss, r.setup)
228230

229231
r = results[0]
230232
self.assertEquals(as_tuple(r),
231-
(1, 12045, 12045, 12045, 0, 12045, None))
233+
(1, 12045, 12045, 12045, 0, 12045, None, None))
232234
r.merge(results[1])
233-
self.assertEquals(as_tuple(r), # drops SD and median
234-
(2, 12045, 12325, 12185, None, None, 10510336))
235+
self.assertEquals(as_tuple(r), # drops SD and median, +max_rss
236+
(2, 12045, 12325, 12185, None, None, 10510336, None))
235237
r.merge(results[2])
236-
self.assertEquals(as_tuple(r), # picks smaller of the MAX_RSS
237-
(3, 11616, 12325, 11995.33, None, None, 10502144))
238+
self.assertEquals(as_tuple(r), # picks smaller of the MAX_RSS, +setup
239+
(3, 11616, 12325, 11995.33, None, None, 10502144, 9))
238240
r.merge(results[3])
239-
self.assertEquals(as_tuple(r),
240-
(4, 11616, 12325, 12064, None, None, 10498048))
241+
self.assertEquals(as_tuple(r), # picks smaller of the setup values
242+
(4, 11616, 12325, 12064, None, None, 10498048, 7))
241243

242244

243245
class TestResultComparison(unittest.TestCase):
@@ -384,6 +386,7 @@ def test_parse_results_verbose(self):
384386
Sample 2,11467
385387
1,AngryPhonebook,3,11467,13898,12392,1315,11812
386388
Running Array2D for 3 samples.
389+
SetUp 14444
387390
Sample 0,369900
388391
Sample 1,381039
389392
Sample 2,371043
@@ -407,6 +410,7 @@ def test_parse_results_verbose(self):
407410
(r.name, r.min, r.max, int(r.mean), int(r.sd), r.median),
408411
('Array2D', 369900, 381039, 373994, 6127, 371043)
409412
)
413+
self.assertEquals(r.setup, 14444)
410414
self.assertEquals(r.num_samples, r.samples.num_samples)
411415
self.assertEquals(results[1].samples.all_samples,
412416
[(0, 1, 369900), (1, 1, 381039), (2, 1, 371043)])

0 commit comments

Comments
 (0)