diff mercurial/streamclone.py @ 52926:34fa51c25112

stream-clone-v2: disable the garbage collector during consumption As often with code that creates a lot of temporary small container (e.g. tuple), disable the gc yield a visible speedup. This this code does not create reference cycle this should not result in any increased memory usage. ### benchmark.name = hg.perf.exchange.stream.consume # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.memory-target = default # benchmark.variants.num-writer = default # benchmark.variants.parallel-processing = yes # benchmark.variants.progress = no # benchmark.variants.read-from-memory = yes # benchmark.variants.version = v2 ## data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog prev-change: 0.234764 ~~~~~ this-change: 0.233780 ## data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog prev-change: 12.037305 ~~~~~ this-change: 11.754377 (-2.35%, -0.28) ## data-env-vars.name = netbsd-xsrc-all-2024-09-19-zstd-sparse-revlog prev-change: 4.763710 ~~~~~ this-change: 4.735520 ## data-env-vars.name = netbsd-xsrc-draft-2024-09-19-zstd-sparse-revlog prev-change: 4.816293 ~~~~~ this-change: 4.728870 (-1.82%, -0.09) ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog prev-change: 2.801525 ~~~~~ this-change: 2.783987 ## data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog prev-change: 6.611609 ~~~~~ this-change: 6.532561 (-1.20%, -0.08) ## data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog prev-change: 47.733498 ~~~~~ this-change: 47.154728 (-1.21%, -0.58) ## data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog prev-change: 48.270778 ~~~~~ this-change: 47.166569 (-2.29%, -1.10) ## data-env-vars.name = mozilla-try-2024-03-26-zstd-sparse-revlog # benchmark.variants.read-from-memory = no prev-change: 115.240169 ~~~~~ this-change: 113.696529 (-1.34%, -1.54)
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 29 Nov 2024 22:22:54 +0100
parents 119cddd02b8c
children 7fc882f7fada
line wrap: on
line diff
--- a/mercurial/streamclone.py	Wed Feb 05 21:59:32 2025 +0100
+++ b/mercurial/streamclone.py	Fri Nov 29 22:22:54 2024 +0100
@@ -1625,7 +1625,8 @@
             % b', '.join(sorted(missingreqs))
         )
 
-    consumev2(repo, fp, filecount, filesize)
+    with util.nogc():
+        consumev2(repo, fp, filecount, filesize)
 
     repo.requirements = new_stream_clone_requirements(
         repo.requirements,