##// END OF EJS Templates
Updated contrib/vim/patchreview.* to version 0.2.1...
Updated contrib/vim/patchreview.* to version 0.2.1 1) adds a :DiffReview command to review code changes in the current workspace. 2) removes the need to have patchutils (specifically filterdiff) installed on the system by implementing patch extraction in pure vim script.

File last commit:

r10493:283f3b41 stable
r10545:b9e4a673 stable
Show More
perf.py
152 lines | 4.5 KiB | text/x-python | PythonLexer
Matt Mackall
Add contrib/perf.py for performance testing
r7366 # perf.py - performance test routines
Dirkjan Ochtman
help: add/fix docstrings for a bunch of extensions
r8873 '''helper extension to measure performance'''
Matt Mackall
Add contrib/perf.py for performance testing
r7366
Alexander Solovyov
contrib: add perflog and perftemplating commands to perf extension
r7872 from mercurial import cmdutil, match, commands
Matt Mackall
Add contrib/perf.py for performance testing
r7366 import time, os, sys
Patrick Mezard
contrib/perf: profile diff of working directory changes
r9826 def timer(func, title=None):
Matt Mackall
Add contrib/perf.py for performance testing
r7366 results = []
begin = time.time()
count = 0
while 1:
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
Patrick Mezard
contrib/perf: profile diff of working directory changes
r9826 if title:
sys.stderr.write("! %s\n" % title)
Matt Mackall
Add contrib/perf.py for performance testing
r7366 if r:
sys.stderr.write("! result: %s\n" % r)
m = min(results)
sys.stderr.write("! wall %f comb %f user %f sys %f (best of %d)\n"
% (m[0], m[1] + m[2], m[1], m[2], count))
def perfwalk(ui, repo, *pats):
try:
m = cmdutil.match(repo, pats, {})
Augie Fackler
dirstate: don't check state of subrepo directories
r10176 timer(lambda: len(list(repo.dirstate.walk(m, [], True, False))))
Matt Mackall
Add contrib/perf.py for performance testing
r7366 except:
try:
m = cmdutil.match(repo, pats, {})
Matt Mackall
many, many trivial check-code fixups
r10282 timer(lambda: len([b for a, b, c in repo.dirstate.statwalk([], m)]))
Matt Mackall
Add contrib/perf.py for performance testing
r7366 except:
timer(lambda: len(list(cmdutil.walk(repo, pats, {}))))
def perfstatus(ui, repo, *pats):
#m = match.always(repo.root, repo.getcwd())
Benoit Boissinot
regression: missing arg from 24ce8f0c0a39 dirstate.{walk,status} changes
r10493 #timer(lambda: sum(map(len, repo.dirstate.status(m, [], False, False, False))))
Matt Mackall
Add contrib/perf.py for performance testing
r7366 timer(lambda: sum(map(len, repo.status())))
def perfheads(ui, repo):
timer(lambda: len(repo.changelog.heads()))
def perftags(ui, repo):
import mercurial.changelog, mercurial.manifest
def t():
repo.changelog = mercurial.changelog.changelog(repo.sopener)
repo.manifest = mercurial.manifest.manifest(repo.sopener)
Greg Ward
localrepo: rename in-memory tag cache instance attributes (issue548)....
r9146 repo._tags = None
Matt Mackall
Add contrib/perf.py for performance testing
r7366 return len(repo.tags())
timer(t)
def perfdirstate(ui, repo):
"a" in repo.dirstate
def d():
repo.dirstate.invalidate()
"a" in repo.dirstate
timer(d)
def perfdirstatedirs(ui, repo):
"a" in repo.dirstate
def d():
"a" in repo.dirstate._dirs
del repo.dirstate._dirs
timer(d)
def perfmanifest(ui, repo):
def d():
t = repo.manifest.tip()
m = repo.manifest.read(t)
repo.manifest.mapcache = None
repo.manifest._cache = None
timer(d)
def perfindex(ui, repo):
import mercurial.changelog
def d():
t = repo.changelog.tip()
repo.changelog = mercurial.changelog.changelog(repo.sopener)
repo.changelog._loadindexmap()
timer(d)
def perfstartup(ui, repo):
cmd = sys.argv[0]
def d():
os.system("HGRCPATH= %s version -q > /dev/null" % cmd)
timer(d)
def perfparents(ui, repo):
nl = [repo.changelog.node(i) for i in xrange(1000)]
def d():
for n in nl:
repo.changelog.parents(n)
timer(d)
def perflookup(ui, repo, rev):
timer(lambda: len(repo.lookup(rev)))
Alexander Solovyov
perf.perflog: add option to follow renames
r9932 def perflog(ui, repo, **opts):
Alexander Solovyov
contrib: add perflog and perftemplating commands to perf extension
r7872 ui.pushbuffer()
Alexander Solovyov
perf.perflog: add option to follow renames
r9932 timer(lambda: commands.log(ui, repo, rev=[], date='', user='',
copies=opts.get('rename')))
Alexander Solovyov
contrib: add perflog and perftemplating commands to perf extension
r7872 ui.popbuffer()
def perftemplating(ui, repo):
ui.pushbuffer()
timer(lambda: commands.log(ui, repo, rev=[], date='', user='',
template='{date|shortdate} [{rev}:{node|short}]'
' {author|person}: {desc|firstline}\n'))
ui.popbuffer()
Patrick Mezard
contrib/perf: profile diff of working directory changes
r9826 def perfdiffwd(ui, repo):
"""Profile diff of working directory changes"""
options = {
'w': 'ignore_all_space',
'b': 'ignore_space_change',
'B': 'ignore_blank_lines',
}
for diffopt in ('', 'w', 'b', 'B', 'wB'):
opts = dict((options[c], '1') for c in diffopt)
def d():
ui.pushbuffer()
commands.diff(ui, repo, **opts)
ui.popbuffer()
title = 'diffopts: %s' % (diffopt and ('-' + diffopt) or 'none')
timer(d, title)
Matt Mackall
Add contrib/perf.py for performance testing
r7366 cmdtable = {
'perflookup': (perflookup, []),
'perfparents': (perfparents, []),
'perfstartup': (perfstartup, []),
'perfstatus': (perfstatus, []),
'perfwalk': (perfwalk, []),
'perfmanifest': (perfmanifest, []),
'perfindex': (perfindex, []),
'perfheads': (perfheads, []),
'perftags': (perftags, []),
'perfdirstate': (perfdirstate, []),
'perfdirstatedirs': (perfdirstate, []),
Alexander Solovyov
perf.perflog: add option to follow renames
r9932 'perflog': (perflog,
[('', 'rename', False, 'ask log to follow renames')]),
Alexander Solovyov
contrib: add perflog and perftemplating commands to perf extension
r7872 'perftemplating': (perftemplating, []),
Patrick Mezard
contrib/perf: profile diff of working directory changes
r9826 'perfdiffwd': (perfdiffwd, []),
Matt Mackall
Add contrib/perf.py for performance testing
r7366 }