Mercurial > hg
changeset 27257:49a76d3d43b1
repoview: stop recomputing cached key in all case
As explained in the comment, we were computing the key of the cache value every
time because of some obscure MQ test failure. I've dropped that code and ran the
test again that failure is gone. I assume some transaction cleanup got rid of
it.
So we are dropping that code. This provide a significant speedup.
Testing `hg log` on Mozilla-central this reduce the time spent on changelog
cache validation by a third:
before: 19.5s of 80s
after: 12.2s of 69s
(With stupid python profiler overhead)
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Fri, 04 Dec 2015 14:04:24 -0800 |
parents | 45124eaab4e2 |
children | beda2c9dbbff |
files | mercurial/repoview.py |
diffstat | 1 files changed, 1 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/repoview.py Sat Dec 05 21:40:38 2015 -0800 +++ b/mercurial/repoview.py Fri Dec 04 14:04:24 2015 -0800 @@ -305,16 +305,7 @@ newkey = (len(unfichangelog), unfichangelog.tip(), hash(revs), unfichangelog._delayed) if cl is not None: - # we need to check curkey too for some obscure reason. - # MQ test show a corruption of the underlying repo (in _clcache) - # without change in the cachekey. - oldfilter = cl.filteredrevs - try: - cl.filteredrevs = () # disable filtering for tip - curkey = (len(cl), cl.tip(), hash(oldfilter), cl._delayed) - finally: - cl.filteredrevs = oldfilter - if newkey != self._clcachekey or newkey != curkey: + if newkey != self._clcachekey: cl = None # could have been made None by the previous if if cl is None: