comparison mercurial/streamclone.py @ 51587:8cd317c033b8

stream-clone: disable gc for the entry listing section for the v2 format This is similar to the change we did for the v3 format in 6e4c8366c5ce. The benchmark bellow show this gives us a notable gains, especially on larger repositories. ### benchmark.name = hg.perf.stream-locked-section # benchmark.name = hg.perf.stream-locked-section # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.version = v2 ## data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog 5e931bf8707c: 0.503820 ~~~~~ 1106d1bf695e: 0.470078 (-6.70%, -0.03) ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog 5e931bf8707c: 0.535756 ~~~~~ 1106d1bf695e: 0.490249 (-8.49%, -0.05) ## data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog 5e931bf8707c: 1.327041 ~~~~~ 1106d1bf695e: 1.174636 (-11.48%, -0.15) ## data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog 5e931bf8707c: 2.439158 ~~~~~ 1106d1bf695e: 2.220515 (-8.96%, -0.22) ## data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog 5e931bf8707c: 2.630794 ~~~~~ 1106d1bf695e: 2.261473 (-14.04%, -0.37) ## data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog 5e931bf8707c: 5.769002 ~~~~~ 1106d1bf695e: 5.062000 (-12.26%, -0.71) ## data-env-vars.name = mozilla-try-2019-02-18-zstd-sparse-revlog 5e931bf8707c: 13.351750 ~~~~~ 1106d1bf695e: 12.346655 (-7.53%, -1.01) ## data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog 5e931bf8707c: 10.772939 ~~~~~ 1106d1bf695e: 9.495407 (-11.86%, -1.28) ## data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog 5e931bf8707c: 10.864297 ~~~~~ 1106d1bf695e: 9.475597 (-12.78%, -1.39) ## data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog 5e931bf8707c: 17.448335 ~~~~~ 1106d1bf695e: 16.027474 (-8.14%, -1.42)
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Sun, 14 Apr 2024 02:33:36 +0200
parents 49faa72b994e
children 493034cc3265
comparison
equal deleted inserted replaced
51586:1cef1412af3e 51587:8cd317c033b8
644 # translate the vfs one 644 # translate the vfs one
645 entries = [(vfs_key, vfsmap[vfs_key], e) for (vfs_key, e) in entries] 645 entries = [(vfs_key, vfsmap[vfs_key], e) for (vfs_key, e) in entries]
646 646
647 max_linkrev = len(repo) 647 max_linkrev = len(repo)
648 file_count = totalfilesize = 0 648 file_count = totalfilesize = 0
649 # record the expected size of every file 649 with util.nogc():
650 for k, vfs, e in entries: 650 # record the expected size of every file
651 for f in e.files(): 651 for k, vfs, e in entries:
652 file_count += 1 652 for f in e.files():
653 totalfilesize += f.file_size(vfs) 653 file_count += 1
654 totalfilesize += f.file_size(vfs)
654 655
655 progress = repo.ui.makeprogress( 656 progress = repo.ui.makeprogress(
656 _(b'bundle'), total=totalfilesize, unit=_(b'bytes') 657 _(b'bundle'), total=totalfilesize, unit=_(b'bytes')
657 ) 658 )
658 progress.update(0) 659 progress.update(0)