changeset 45729:44d84b726c8a

unbundle: free temporary objects after use This reduces peak RSS for larger unbundle operations by ~30 Bytes per changeset on AMD64. This can't be a direct delete for Python 2.7, so reset the object instead and leave a comment. The efilesset object can't be deleted as it is referenced by the local onchangelog function and Python 2.7 rejects a delete on the existance of a nested scope. Differential Revision: https://phab.mercurial-scm.org/D9153
author Joerg Sonnenberger <joerg@bec.de>
date Tue, 06 Oct 2020 01:51:56 +0200
parents 232c88dd89e3
children fbde66b05da4
files mercurial/changegroup.py
diffstat 1 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/changegroup.py	Tue Oct 13 03:23:17 2020 +0200
+++ b/mercurial/changegroup.py	Tue Oct 06 01:51:56 2020 +0200
@@ -333,6 +333,10 @@
             clend = len(cl)
             changesets = clend - clstart
             progress.complete()
+            del deltas
+            # TODO Python 2.7 removal
+            # del efilesset
+            efilesset = None
             self.callback = None
 
             # pull off the manifest group