On Fri, Jul 20, 2018 at 9:47 PM, Duy Nguyen <pclouds@xxxxxxxxx> wrote: > On Fri, Jul 20, 2018 at 10:43:25AM -0700, Elijah Newren wrote: >> Out of curiosity, would it be possible to use the delta_size_ field >> for deltas that are small enough, and only use an external data >> structure (perhaps a hash rather than an array) for the few deltas >> that are large? > > We could. And because repack time is still a bit higher in your > linux.git case. Let's try this. No locking in common case and very > small locked region when we hit large deltas This one looks like a winner. Labelling this as fix-v7, this rounds out the table to: Version Time (s) ------- -------- 2.17.0 621.36 2.18.0 621.80 fix-v5 836.29 fix-v6 831.73 fix-v2 619.96 fix-v7 622.88 So the runtime is basically within the noise of different runs of the timing for 2.17.0 or 2.18.0 or -v2, and is much faster than -v5 or -v6.