~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/groupcompress.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-06-05 04:50:30 UTC
  • mfrom: (4398.6.3 1.16-no-first-delta-index)
  • Revision ID: pqm@pqm.ubuntu.com-20090605045030-yj7sm39ao623zoqo
(jam) Delay generating a delta index until we call make_delta()
        [saves a lot of memory during commit of large files.]

Show diffs side-by-side

added added

removed removed

Lines of Context:
754
754
 
755
755
        After calling this, the compressor should no longer be used
756
756
        """
 
757
        # TODO: this causes us to 'bloat' to 2x the size of content in the
 
758
        #       group. This has an impact for 'commit' of large objects.
 
759
        #       One possibility is to use self._content_chunks, and be lazy and
 
760
        #       only fill out self._content as a full string when we actually
 
761
        #       need it. That would at least drop the peak memory consumption
 
762
        #       for 'commit' down to ~1x the size of the largest file, at a
 
763
        #       cost of increased complexity within this code. 2x is still <<
 
764
        #       3x the size of the largest file, so we are doing ok.
757
765
        content = ''.join(self.chunks)
758
766
        self.chunks = None
759
767
        self._delta_index = None