Extreme unbundling performance difference between none-v2 and zstd-v2 bundle

Stefan Ring stefanrin at gmail.com
Sat Dec 30 19:45:31 UTC 2017


Hi,

I have a repository (in generaldelta format) that when fed to hg
bundle --all results in a 462 MB file with -t none-v2 and a 75 MB file
with -t zstd-v2. Bundling is reasonably fast. It is unbundling where
things fall apart.

$ time hg clone -U zstd-bundle.hg test-fast
requesting all changes
adding changesets
adding manifests
adding file changes
added 57372 changesets with 106051 changes to 15184 files (+7 heads)
new changesets 194d1d9b4b58:2dc5d8355c7e

real    1m18.643s
user    1m14.319s
sys     0m4.231s

$ time hg clone -U uncompressed-bundle.hg test-slow
requesting all changes
adding changesets
adding manifests
adding file changes
added 57372 changesets with 106051 changes to 15184 files (+7 heads)
new changesets 194d1d9b4b58:2dc5d8355c7e

real    25m34.647s
user    25m2.263s
sys     0m30.693s

Any ideas?

Tested with 4.2.3 and the current hg-stable head
(4.4.2+9-058c725925e3). With 4.2.3 it was even more pronounced
(40min), but this was also using a different Python build, so it is
not directly comparable. The measurements above are using the same
Python and Mercurial versions (current hg-stable).


More information about the Mercurial-devel mailing list