##// 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.
Christoph Spiel -
r5339:058e93c3 default
Show More
Name Size Modified Last Commit Author
/ mercurial
hgweb
__init__.py Loading ...
ancestor.py Loading ...
archival.py Loading ...
base85.c Loading ...
bdiff.c Loading ...
bundlerepo.py Loading ...
byterange.py Loading ...
changegroup.py Loading ...
changelog.py Loading ...
cmdutil.py Loading ...
commands.py Loading ...
context.py Loading ...
demandimport.py Loading ...
diffhelpers.c Loading ...
dirstate.py Loading ...
dispatch.py Loading ...
extensions.py Loading ...
fancyopts.py Loading ...
filelog.py Loading ...
help.py Loading ...
hg.py Loading ...
hook.py Loading ...
httprangereader.py Loading ...
httprepo.py Loading ...
i18n.py Loading ...
ignore.py Loading ...
keepalive.py Loading ...
localrepo.py Loading ...
lock.py Loading ...
lsprof.py Loading ...
mail.py Loading ...
manifest.py Loading ...
mdiff.py Loading ...
merge.py Loading ...
mpatch.c Loading ...
node.py Loading ...
patch.py Loading ...
remoterepo.py Loading ...
repair.py Loading ...
repo.py Loading ...
revlog.py Loading ...
sshrepo.py Loading ...
sshserver.py Loading ...
statichttprepo.py Loading ...
streamclone.py Loading ...
strutil.py Loading ...
templater.py Loading ...
transaction.py Loading ...
ui.py Loading ...
util.py Loading ...
util_win32.py Loading ...
verify.py Loading ...
version.py Loading ...