view tests/test-convert-cvs.out @ 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 7b4b874ce12c
children ac2ccdcf4539
line wrap: on
line source

% create cvs repository
% create source directory
% import source directory
N src/a
N src/b/c

No conflicts created by this import

% checkout source directory
U src/a
U src/b/c
% convert fresh repo
initializing destination src-hg repository
connecting to cvsrepo
scanning source...
sorting...
converting...
1 Initial revision
0 import
updating tags
a
c
% commit new file revisions
src/a,v  <--  a
new revision: 1.2; previous revision: 1.1
src/b/c,v  <--  b/c
new revision: 1.2; previous revision: 1.1
% convert again
destination src-hg is a Mercurial repository
connecting to cvsrepo
scanning source...
sorting...
converting...
0 ci1
updating tags
a
a
c
c