cvs2hg memory use

Dirkjan Ochtman dirkjan at
Tue Aug 4 01:29:25 CDT 2009

On Mon, Aug 3, 2009 at 23:58, Greg Ward<greg-hg at> wrote:
> As expected, a gc.collect() after every commit keeps memory use quite
> constant.  A more reasonable approach, countermanding cvs2svn's
> default with a call to gc.enable() at the begninning of the
> conversion, works almost as well but presumably with less of a
> performance hit. (But the memory profile in this case is still
> noticeably worse than under 1.1 or 1.2 without GC: DRS creeps as high
> as 50 MB after 4000 commits, versus 33 MB under Hg 1.1.)

I think we added a couple of LRU caches in 1.3, which would explain
the added memory usage but not the cycles. I thought we even
eliminated some cycles in 1.3 (or 1.3.1). Would be helpful if you can
find out where the cycles are. hgsubversion also has a rather big
memleak, FWIW, though it's not clear if that's due to hg or due to
SVN's Python bindings (which are known to be problematic).

> Still curious what changed in 1.3.  I might write a little test script
> and bisect this anyways, just for the heck of it.

Please do! :)



More information about the Mercurial-devel mailing list