[PATCH] perf: perfrevlog - useful for checking performance of revlog.revision()

Pradeepkumar Gayam in3xes at gmail.com
Sat Jul 10 18:45:02 CDT 2010


# HG changeset patch
# User Pradeepkumar Gayam <in3xes at gmail.com>
# Date 1278805496 -19800
# Node ID 4f203f205b8eff2dd62e2bfe05d439a7d87f1e8a
# Parent  ed3ea5d08f64b0b4ea94353ca42cfa6f07e8f38f
perf: perfrevlog - useful for checking performance of revlog.revision()

diff -r ed3ea5d08f64 -r 4f203f205b8e contrib/perf.py
--- a/contrib/perf.py	Sun Jul 11 04:04:59 2010 +0530
+++ b/contrib/perf.py	Sun Jul 11 05:14:56 2010 +0530
@@ -133,6 +133,15 @@
         title = 'diffopts: %s' % (diffopt and ('-' + diffopt) or 'none')
         timer(d, title)
 
+def perfrevlog(ui, repo, file_):
+    from mercurial import revlog
+    r = revlog.revlog(lambda fp: open(fp, 'rb'), file_)
+    def d():
+        for i in xrange(0, len(r), 10):
+            r.revision(r.node(i))
+
+    timer(d)
+
 cmdtable = {
     'perflookup': (perflookup, []),
     'perfparents': (perfparents, []),
@@ -149,4 +158,5 @@
                 [('', 'rename', False, 'ask log to follow renames')]),
     'perftemplating': (perftemplating, []),
     'perfdiffwd': (perfdiffwd, []),
+    'perfrevlog': (perfrevlog, []),
 }


More information about the Mercurial-devel mailing list