Mercurial > hg
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