[PATCH 3 of 4] perf: cache revlog file handle during perfrevlog
Gregory Szorc
gregory.szorc at gmail.com
Sun Oct 16 16:35:36 EDT 2016
# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1476649617 25200
# Sun Oct 16 13:26:57 2016 -0700
# Node ID 9e2f957b05ac5c76595280a6084ba01d7b369a05
# Parent ee7144d686de700d60cb2a78adac3aab43f2a71d
perf: cache revlog file handle during perfrevlog
The aim of perfrevlog is to measure how fast revlog revisions
can be resolved, not I/O. Since we now have a mechanism to cache
an open file handle on a revlog instance, let's use it.
diff --git a/contrib/perf.py b/contrib/perf.py
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -788,18 +788,19 @@ def perfrevlog(ui, repo, file_=None, sta
startrev = 0
endrev = _len(r)
dist = opts['dist']
if reverse:
startrev, endrev = endrev, startrev
dist = -1 * dist
- for x in xrange(startrev, endrev, dist):
- r.revision(r.node(x))
+ with r.cachefilehandle():
+ for x in xrange(startrev, endrev, dist):
+ r.revision(r.node(x))
timer(d)
fm.end()
@command('perfrevlogrevision', revlogopts + formatteropts +
[('', 'cache', False, 'use caches instead of clearing')],
'-c|-m|FILE REV')
def perfrevlogrevision(ui, repo, file_, rev=None, cache=None, **opts):
More information about the Mercurial-devel
mailing list