299 if cstop - begin > 3 and count >= 100: |
299 if cstop - begin > 3 and count >= 100: |
300 break |
300 break |
301 if cstop - begin > 10 and count >= 3: |
301 if cstop - begin > 10 and count >= 3: |
302 break |
302 break |
303 |
303 |
|
304 formatone(fm, results, title=title, result=r, |
|
305 displayall=displayall) |
|
306 |
|
307 def formatone(fm, timings, title=None, result=None, displayall=False): |
|
308 |
|
309 count = len(timings) |
|
310 |
304 fm.startitem() |
311 fm.startitem() |
305 |
312 |
306 if title: |
313 if title: |
307 fm.write(b'title', b'! %s\n', title) |
314 fm.write(b'title', b'! %s\n', title) |
308 if r: |
315 if result: |
309 fm.write(b'result', b'! result: %s\n', r) |
316 fm.write(b'result', b'! result: %s\n', result) |
310 def display(role, entry): |
317 def display(role, entry): |
311 prefix = b'' |
318 prefix = b'' |
312 if role != b'best': |
319 if role != b'best': |
313 prefix = b'%s.' % role |
320 prefix = b'%s.' % role |
314 fm.plain(b'!') |
321 fm.plain(b'!') |
316 fm.write(prefix + b'comb', b' comb %f', entry[1] + entry[2]) |
323 fm.write(prefix + b'comb', b' comb %f', entry[1] + entry[2]) |
317 fm.write(prefix + b'user', b' user %f', entry[1]) |
324 fm.write(prefix + b'user', b' user %f', entry[1]) |
318 fm.write(prefix + b'sys', b' sys %f', entry[2]) |
325 fm.write(prefix + b'sys', b' sys %f', entry[2]) |
319 fm.write(prefix + b'count', b' (%s of %%d)' % role, count) |
326 fm.write(prefix + b'count', b' (%s of %%d)' % role, count) |
320 fm.plain(b'\n') |
327 fm.plain(b'\n') |
321 results.sort() |
328 timings.sort() |
322 min_val = results[0] |
329 min_val = timings[0] |
323 display(b'best', min_val) |
330 display(b'best', min_val) |
324 if displayall: |
331 if displayall: |
325 max_val = results[-1] |
332 max_val = timings[-1] |
326 display(b'max', max_val) |
333 display(b'max', max_val) |
327 avg = tuple([sum(x) / count for x in zip(*results)]) |
334 avg = tuple([sum(x) / count for x in zip(*timings)]) |
328 display(b'avg', avg) |
335 display(b'avg', avg) |
329 median = results[len(results) // 2] |
336 median = timings[len(timings) // 2] |
330 display(b'median', median) |
337 display(b'median', median) |
331 |
338 |
332 # utilities for historical portability |
339 # utilities for historical portability |
333 |
340 |
334 def getint(ui, section, name, default): |
341 def getint(ui, section, name, default): |