On Mon, Aug 6, 2018 at 8:54 PM Christian Couder <christian.couder@xxxxxxxxx> wrote: > > Is it worth it? The "pahole" comment in this file is up to date. We > > use 80 bytes per object. This series makes the struct 88 bytes (I've > > just rerun pahole). > > Did you run it on V1 or on V2? I guess on V2, but then what do you > think about converting the 'layer' field into a bit field, which might > be simpler and save space? V2. I kinda ignored the layer field because Jeff was suggesting that it may not be needed. It may be better to just move it out though because it's not that complicated and even if we have enough bits left, they may be spread out that it's hard to reorder so that they're grouped together and use can use them. > > On linux repo with 12M objects, "git pack-objects > > --all" needs extra 96MB memory even if this feature is not used. So > > yes I still think it's worth moving these fields out of struct > > object_entry. > > And what about the fields already in struct object_entry? While I am > at it, I think I could move some of them too if it is really so worth Way ahead of you. In v2.17.0 this struct is 136 bytes so going down to 80 bytes now is a big memory saving. I think I squeezed everything possible and was a bit too aggressive that I created a new performance regression in v2.18.0 ;-) -- Duy