• N
    pack-objects: allow for early delta deflating · ed4a9031
    Nicolas Pitre 提交于
    When the delta data is cached in memory until it is written to a pack
    file on disk, it is best to compress it right away in find_deltas() for
    the following reasons:
    
      - we have to compress that data anyway;
    
      - this allows for caching more deltas with the same cache size limit;
    
      - compression is potentially threaded.
    
    This last point is especially relevant for SMP run time.  For example,
    repacking the Linux repo on a quad core processor using 4 threads with
    all default settings produce the following results before this change:
    
    	real    2m27.929s
    	user    4m36.492s
    	sys     0m3.091s
    
    And with this change applied:
    
    	real    2m13.787s
    	user    4m37.486s
    	sys     0m3.159s
    
    So the actual execution time stayed more or less the same but the
    wall clock time is shorter.
    
    This is however not a good thing to do when generating a pack for
    network transmission.  In that case, the network is most likely to
    throttle the data throughput, so it is best to make find_deltas()
    faster in order to start writing data ASAP since we can afford
    spending more time between writes to compress the data
    at that point.
    Signed-off-by: NNicolas Pitre <nico@cam.org>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    ed4a9031
builtin-pack-objects.c 55.7 KB