changeset 32271:954f63391d71

perf: clear revlog caches on every iteration cmdutil.openrevlog() may return a cached revlog instance. This /may/ be a recent "regression" due to refactoring of the manifest API. I'm not sure. Either way, this perf command was broken for at least manifests because subsequent invocations of the perf function would get cache hits from previous invocations, invalidating results. In the extreme case, testing the last revision in the revlog resulted in near-instantanous execution of subsequent runs (since the fulltext is cached). A time of ~1us would be reported in this case.
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 06 May 2017 11:15:56 -0700
parents 73c3e226d2fc
children 4c6b2076d292
files contrib/perf.py
diffstat 1 files changed, 1 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/contrib/perf.py	Sat May 06 11:12:23 2017 -0700
+++ b/contrib/perf.py	Sat May 06 11:15:56 2017 -0700
@@ -854,6 +854,7 @@
 
     def d():
         r = cmdutil.openrevlog(repo, 'perfrevlog', file_, opts)
+        r.clearcaches()
 
         beginrev = startrev
         endrev = _len(r)