Comments
Patch
@@ -1183,6 +1183,23 @@ def perfdirfoldmap(ui, repo, **opts):
fm.end()
+@command(b'perfdirstateiter', formatteropts)
+def perfdirstateiter(ui, repo, **opts):
+ """benchmap the full iteration over all dirstate entry
+ """
+ opts = _byteskwargs(opts)
+ timer, fm = gettimer(ui, opts)
+ dirstate = repo.dirstate
+ b'a' in dirstate
+
+ def d():
+ for f in dirstate:
+ pass
+
+ timer(d)
+ fm.end()
+
+
@command(b'perfdirstatewrite', formatteropts)
def perfdirstatewrite(ui, repo, **opts):
"""benchmap the time it take to write a dirstate on disk
@@ -112,6 +112,8 @@ perfstatus
benchmap a 'dirstate.hasdir' call from an empty 'dirs' cache
perfdirstatefoldmap
benchmap a 'dirstate._map.filefoldmap.get()' request
+ perfdirstateiter
+ benchmap the full iteration over all dirstate entry
perfdirstatewrite
benchmap the time it take to write a dirstate on disk
perfdiscovery
@@ -207,6 +209,7 @@ perfstatus
$ hg perfdirstate
$ hg perfdirstatedirs
$ hg perfdirstatefoldmap
+ $ hg perfdirstateiter
$ hg perfdirstatewrite
#if repofncache
$ hg perffncacheencode