view tests/test-branches @ 5339:058e93c3d07d

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.
author Christoph Spiel <cspiel@freenet.de>
date Thu, 27 Sep 2007 23:57:57 -0500
parents 6858a7477a5e
children 57c1a7052982
line wrap: on
line source

#!/bin/sh

hg init a
cd a
echo 'root' >root
hg add root
hg commit -d '0 0' -u test -m "Adding root node"

echo 'a' >a
hg add a
hg branch a
hg commit -d '1 0' -u test -m "Adding a branch"

hg update -C 0
echo 'b' >b
hg add b
hg branch b
hg commit -d '2 0' -u test -m "Adding b branch"

echo 'bh1' >bh1
hg add bh1
hg commit -d '3 0' -u test -m "Adding b branch head 1"

hg update -C 2
echo 'bh2' >bh2
hg add bh2
hg commit -d '4 0' -u test -m "Adding b branch head 2"

echo 'c' >c
hg add c
hg branch c
hg commit -d '5 0' -u test -m "Adding c branch"

hg branches
echo '-------'
hg branches -a