tracing: add a couple of trace points on obsolete and repoview
I was seeing weird stalls in some fast commands, and these trace
events help explain them.
Differential Revision: https://phab.mercurial-scm.org/D6550
--- a/mercurial/obsolete.py Tue Oct 15 11:05:32 2019 -0400
+++ b/mercurial/obsolete.py Wed Jun 19 18:22:10 2019 -0400
@@ -899,11 +899,12 @@
Such access may compute the set and cache it for future use"""
repo = repo.unfiltered()
- if not repo.obsstore:
- return frozenset()
- if name not in repo.obsstore.caches:
- repo.obsstore.caches[name] = cachefuncs[name](repo)
- return repo.obsstore.caches[name]
+ with util.timedcm('getrevs %s', name):
+ if not repo.obsstore:
+ return frozenset()
+ if name not in repo.obsstore.caches:
+ repo.obsstore.caches[name] = cachefuncs[name](repo)
+ return repo.obsstore.caches[name]
# To be simple we need to invalidate obsolescence cache when:
--- a/mercurial/repoview.py Tue Oct 15 11:05:32 2019 -0400
+++ b/mercurial/repoview.py Wed Jun 19 18:22:10 2019 -0400
@@ -274,8 +274,8 @@
unfiindex = unfichangelog.index
unfilen = len(unfiindex)
unfinode = unfiindex[unfilen - 1][7]
-
- revs = filterrevs(unfi, self.filtername, self._visibilityexceptions)
+ with util.timedcm('repo filter for %s', self.filtername):
+ revs = filterrevs(unfi, self.filtername, self._visibilityexceptions)
cl = self._clcache
newkey = (unfilen, unfinode, hash(revs), unfichangelog._delayed)
# if cl.index is not unfiindex, unfi.changelog would be