Mercurial > hg
view hg @ 21986:48166e46f111
locate: use ctx.matches instead of ctx.walk
On mozilla-central, which is around 100,000 files, best of 5:
$ hg --time locate > /dev/null
before: real 1.460 secs (user 1.140+0.000 sys 0.320+0.000)
after: real 0.620 secs (user 0.610+0.000 sys 0.020+0.000)
$ hg --time locate README > /dev/null
before: real 0.630 secs (user 0.330+0.000 sys 0.290+0.000)
after: real 0.120 secs (user 0.110+0.000 sys 0.020+0.000)
Larger repositories see correspondingly larger performance gains.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Fri, 01 Aug 2014 22:16:54 -0700 |
parents | 73e4a02e6d23 |
children | 2ea9c9aa6e60 |
line wrap: on
line source
#!/usr/bin/env python # # mercurial - scalable distributed SCM # # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. import os import sys if os.environ.get('HGUNICODEPEDANTRY', False): reload(sys) sys.setdefaultencoding("undefined") libdir = '@LIBDIR@' if libdir != '@' 'LIBDIR' '@': if not os.path.isabs(libdir): libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)), libdir) libdir = os.path.abspath(libdir) sys.path.insert(0, libdir) # enable importing on demand to reduce startup time try: from mercurial import demandimport; demandimport.enable() except ImportError: import sys sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" % ' '.join(sys.path)) sys.stderr.write("(check your install and PYTHONPATH)\n") sys.exit(-1) import mercurial.util import mercurial.dispatch for fp in (sys.stdin, sys.stdout, sys.stderr): mercurial.util.setbinary(fp) mercurial.dispatch.run()