[PATCH] parsers: use base-16 trie for faster node->rev mapping

Matt Mackall mpm at selenic.com
Sat Apr 7 13:17:12 CDT 2012


On Fri, 2012-04-06 at 12:14 -0700, Bryan O'Sullivan wrote:
> On Fri, Apr 6, 2012 at 11:42 AM, Bryan O'Sullivan <bos at serpentine.com>wrote:
> 
> > Matt mentioned in IRC that he thinks this is related to an attempt to
> > validate all the tags (i.e. ensure that they all refer to changelog entries
> > that actually exist), but it's unclear why only a small subset of tags are
> > looked up.
> >
> 
> Because I was miscounting. I fixed my accounting, and the discrepancy went
> away.
> 
> The phenomenon is real, though: tag validation causes almost every node in
> 00changelog.i to be cached in the trie.

Ok, we've pretty much tackled the tag validation issue for now:

http://www.selenic.com/hg/rev/4417eb761ba8

Let's go back to the single slow path for trie lookup for now. It should
be significantly faster than the current code for all cases.

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list