On Wed, Mar 21, 2018 at 5:17 PM, Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> wrote: >>> I think ultimately to work on low-memory machines we'll need a >>> fundamentally different approach that scales with the objects since the >>> last pack, and not with the complete history. >> >> Absolutely. Which is covered in a separate "gc --auto" series. Some >> memory reduction here may be still nice to have though. Even on beefy >> machine, memory can still be reused somewhere other than wasted in >> unused bits. > > FWIW I've been running a combination of these two at work (also keeping > the big pack), and they've had a sizable impact on packing our monorepo, > on one of our dev boxes on a real-world checkout with a combo of the > "base" pack and other packs + loose objects, as measured by > /usr/bin/time > > * Reduction in user time by 37% > * Reduction in system time by 84% > * Reduction in RSS by 61% > * Reduction in page faults by 58% & 94% (time(1) reports two different numbers) > * Reduction in the I of I/O by 58% > * Reduction in the O of I/O by 94% The keeping big pack changes very likely contributes to most of this reduction, so just to be clear these numbers can't be be used as an argument in favor of this pack-objects series (but otherwise, wow! I guess I need to finish up the gc series soon, then start the external rev-list work to reduce even more ;-) -- Duy