# HG changeset patch # User Siddharth Agarwal # Date 2014-10-04 01:48:09 # Node ID a1eb21f5caea4366310e32aa85248791d5bbfa0c # Parent 70624fda193d022ed85a88c26177137c1d807a8b dirstate: cache util.normcase while constructing the foldmap This is a small win on OS X. hg perfdirstatefoldmap: before: wall 0.399708 comb 0.410000 user 0.390000 sys 0.020000 (best of 25) after: wall 0.386331 comb 0.390000 user 0.370000 sys 0.020000 (best of 25) diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -84,11 +84,12 @@ class dirstate(object): @propertycache def _foldmap(self): f = {} + normcase = util.normcase for name, s in self._map.iteritems(): if s[0] != 'r': - f[util.normcase(name)] = name + f[normcase(name)] = name for name in self._dirs: - f[util.normcase(name)] = name + f[normcase(name)] = name f['.'] = '.' # prevents useless util.fspath() invocation return f