##// END OF EJS Templates
I have spotted the biggest bottleneck in "bdiff.c". Actually it was...
I have spotted the biggest bottleneck in "bdiff.c". Actually it was pretty easy to find after I recompiled the python interpreter and mercurial for profiling. In "bdiff.c" function "equatelines" allocates the minimum hash table size, which can lead to tons of collisions. I introduced an "overcommit" factor of 16, this is, I allocate 16 times more memory than the minimum value. Overcommiting 128 times does not improve the performance over the 16-times case.

File last commit:

r3888:66050481 default
r5339:058e93c3 default
Show More
i18n.py
13 lines | 339 B | text/x-python | PythonLexer
"""
i18n.py - internationalization support for mercurial
Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
This software may be used and distributed according to the terms
of the GNU General Public License, incorporated herein by reference.
"""
import gettext
t = gettext.translation('hg', fallback=1)
gettext = t.gettext
_ = gettext