44 #m = match.always(repo.root, repo.getcwd()) |
44 #m = match.always(repo.root, repo.getcwd()) |
45 #timer(lambda: sum(map(len, repo.dirstate.status(m, [], False, False, |
45 #timer(lambda: sum(map(len, repo.dirstate.status(m, [], False, False, |
46 # False)))) |
46 # False)))) |
47 timer(lambda: sum(map(len, repo.status()))) |
47 timer(lambda: sum(map(len, repo.status()))) |
48 |
48 |
|
49 def clearcaches(cl): |
|
50 # behave somewhat consistently across internal API changes |
|
51 if util.safehasattr(cl, 'clearcaches'): |
|
52 cl.clearcaches() |
|
53 elif util.safehasattr(cl, '_nodecache'): |
|
54 from mercurial.node import nullid, nullrev |
|
55 cl._nodecache = {nullid: nullrev} |
|
56 cl._nodepos = None |
|
57 |
49 def perfheads(ui, repo): |
58 def perfheads(ui, repo): |
50 timer(lambda: len(repo.changelog.headrevs())) |
59 cl = repo.changelog |
|
60 def d(): |
|
61 len(cl.headrevs()) |
|
62 clearcaches(cl) |
|
63 timer(d) |
51 |
64 |
52 def perftags(ui, repo): |
65 def perftags(ui, repo): |
53 import mercurial.changelog, mercurial.manifest |
66 import mercurial.changelog, mercurial.manifest |
54 def t(): |
67 def t(): |
55 repo.changelog = mercurial.changelog.changelog(repo.sopener) |
68 repo.changelog = mercurial.changelog.changelog(repo.sopener) |
124 def perfnodelookup(ui, repo, rev): |
137 def perfnodelookup(ui, repo, rev): |
125 import mercurial.revlog |
138 import mercurial.revlog |
126 mercurial.revlog._prereadsize = 2**24 # disable lazy parser in old hg |
139 mercurial.revlog._prereadsize = 2**24 # disable lazy parser in old hg |
127 n = repo[rev].node() |
140 n = repo[rev].node() |
128 cl = mercurial.revlog.revlog(repo.sopener, "00changelog.i") |
141 cl = mercurial.revlog.revlog(repo.sopener, "00changelog.i") |
129 # behave somewhat consistently across internal API changes |
|
130 if util.safehasattr(cl, 'clearcaches'): |
|
131 clearcaches = cl.clearcaches |
|
132 elif util.safehasattr(cl, '_nodecache'): |
|
133 from mercurial.node import nullid, nullrev |
|
134 def clearcaches(): |
|
135 cl._nodecache = {nullid: nullrev} |
|
136 cl._nodepos = None |
|
137 else: |
|
138 def clearcaches(): |
|
139 pass |
|
140 def d(): |
142 def d(): |
141 cl.rev(n) |
143 cl.rev(n) |
142 clearcaches() |
144 clearcaches(cl) |
143 timer(d) |
145 timer(d) |
144 |
146 |
145 def perflog(ui, repo, **opts): |
147 def perflog(ui, repo, **opts): |
146 ui.pushbuffer() |
148 ui.pushbuffer() |
147 timer(lambda: commands.log(ui, repo, rev=[], date='', user='', |
149 timer(lambda: commands.log(ui, repo, rev=[], date='', user='', |