~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tuned_gzip.py

  • Committer: John Arbash Meinel
  • Date: 2006-08-08 02:42:14 UTC
  • mto: This revision was merged to the branch mainline in revision 1937.
  • Revision ID: john@arbash-meinel.com-20060808024214-b42d83366464c2ce
Shave another second off of _record_to_data time, by optimizing single write versus multiple writes

Show diffs side-by-side

added added

removed removed

Lines of Context:
63
63
        self.extrasize += len_data
64
64
        self.size += len_data
65
65
 
 
66
    def _write_gzip_header(self):
 
67
        """A tuned version of gzip._write_gzip_header
 
68
 
 
69
        We have some extra constrains that plain Gzip does not.
 
70
        1) We can write the whole blob at once. rather than multiple calls to 
 
71
           fileobj.write().
 
72
        2) We never have a filename
 
73
        3) We don't care about the time
 
74
        """
 
75
        self.fileobj.write(
 
76
           '\037\213'   # self.fileobj.write('\037\213')  # magic header
 
77
            '\010'      # self.fileobj.write('\010')      # compression method
 
78
                        # fname = self.filename[:-3]
 
79
                        # flags = 0
 
80
                        # if fname:
 
81
                        #     flags = FNAME
 
82
            '\x00'      # self.fileobj.write(chr(flags))
 
83
            '\0\0\0\0'  # write32u(self.fileobj, long(time.time()))
 
84
            '\002'      # self.fileobj.write('\002')
 
85
            '\377'      # self.fileobj.write('\377')
 
86
                        # if fname:
 
87
            ''          #     self.fileobj.write(fname + '\000')
 
88
            )
 
89
 
66
90
    def _read(self, size=1024):
67
91
        # various optimisations:
68
92
        # reduces lsprof count from 2500 to