On Thu, Dec 21, 2023 at 06:13:33AM -0500, Jeff King wrote: > But that's not quite the whole story. There is still a CPU improvement > in your series (1.2s vs 1.0s, a 20% speedup). And as I'd expect, a > memory improvement from avoiding the extra book-keeping (almost 10%): > > > Benchmark 1: single-pack reuse, pack.window=0 > > 354.224 MB (max RSS) > > Benchmark 4: multi-pack reuse, pack.window=10 > > 328.786 MB (max RSS) I agree. And I expect that we'd see larger savings on larger, real-world repositories (the numbers here are generated from a semi out-of-date copy of git.git). > So while it's a lot less code to just set the window size, I do think > those improvements are worth it. And really, it's the same tradeoff we > make for the single-pack case (i.e., one could argue that we > could/should rip out the verbatim-reuse code entirely in favor of just > tweaking the window size). Definitely an interesting direction. One question that comes to mind is whether or not we'd want to keep the "verbatim" reuse code around to avoid adding objects to the packing list directly. That's a non-negligible memory savings when generating large packs where we can reuse large swaths of existing packs. That seems like a topic for another day, though ;-). Not quite left-over-bits, so maybe... #leftoverboulders? Thanks, Taylor