Mercurial > hg-git
view contrib/hggitperf.py @ 1095:60a82693d43c
tests: fix bad (re) match
It seems fffe8883960b incorrectly did a match on the second
parent (which is null) and that core Mercurial mistakenly matched the
whole line with (re). This was recently fixed in 6d5718e39657 in core,
so let's update the test with the correct match.
author | Sean Farley <sean@farley.io> |
---|---|
date | Thu, 30 Nov 2017 14:49:06 -0800 |
parents | 99c42969417f |
children |
line wrap: on
line source
# hggitperf.py - performance test routines '''helper extension to measure performance of hg-git operations This requires both the hggit and hggitperf extensions to be enabled and available. ''' from mercurial import cmdutil import time, os, tempfile import functools cmdtable = {} command = cmdutil.command(cmdtable) # the timer functions are copied from mercurial/contrib/perf.py def gettimer(ui, opts=None): """return a timer function and formatter: (timer, formatter) This functions exist to gather the creation of formatter in a single place instead of duplicating it in all performance command.""" # enforce an idle period before execution to counteract power management time.sleep(ui.configint("perf", "presleep", 1)) if opts is None: opts = {} # redirect all to stderr ui = ui.copy() ui.fout = ui.ferr # get a formatter fm = ui.formatter('perf', opts) return functools.partial(_timer, fm), fm def _timer(fm, func, title=None): results = [] begin = time.time() count = 0 while True: ostart = os.times() cstart = time.time() r = func() cstop = time.time() ostop = os.times() count += 1 a, b = ostart, ostop results.append((cstop - cstart, b[0] - a[0], b[1]-a[1])) if cstop - begin > 3 and count >= 100: break if cstop - begin > 10 and count >= 3: break fm.startitem() if title: fm.write('title', '! %s\n', title) if r: fm.write('result', '! result: %s\n', r) m = min(results) fm.plain('!') fm.write('wall', ' wall %f', m[0]) fm.write('comb', ' comb %f', m[1] + m[2]) fm.write('user', ' user %f', m[1]) fm.write('sys', ' sys %f', m[2]) fm.write('count', ' (best of %d)', count) fm.plain('\n') @command('perfgitloadmap') def perfgitloadmap(ui, repo): timer, fm = gettimer(ui) timer(repo.githandler.load_map) fm.end() @command('perfgitsavemap') def perfgitsavemap(ui, repo): timer, fm = gettimer(ui) repo.githandler.load_map() fd, f = tempfile.mkstemp(prefix='.git-mapfile-', dir=repo.path) basename = os.path.basename(f) try: timer(lambda: repo.githandler.save_map(basename)) finally: os.unlink(f) fm.end()