summaryrefslogtreecommitdiff
path: root/builtin/replace.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2018-03-24 07:33:53 +0100
committerJunio C Hamano <gitster@pobox.com>2018-03-26 10:22:25 -0700
commit6826b8fee3be5a6611e10aa8e548e8523432b176 (patch)
treed73d2124ff7db1e6ff3e71da6c538e7b07e39eea /builtin/replace.c
parent296c0159289edde2da09296148c15d852bd56621 (diff)
downloadgit-nd/pack-objects-pack-struct.tar.gz
pack-objects: reorder members to shrink struct object_entrynd/pack-objects-pack-struct
Previous patches leave lots of holes and padding in this struct. This patch reorders the members and shrinks the struct down to 80 bytes (from 136 bytes, before any field shrinking is done) with 16 bits to spare (and a couple more in in_pack_header_size when we really run out of bits). This is the last in a series of memory reduction patches (see "pack-objects: a bit of document about struct object_entry" for the first one). Overall they've reduced repack memory size on linux-2.6.git from 3.747G to 3.424G, or by around 320M, a decrease of 8.5%. The runtime of repack has stayed the same throughout this series. Ævar's testing on a big monorepo he has access to (bigger than linux-2.6.git) has shown a 7.9% reduction, so the overall expected improvement should be somewhere around 8%. See 87po42cwql.fsf@evledraar.gmail.com on-list (https://public-inbox.org/git/87po42cwql.fsf@evledraar.gmail.com/) for more detailed numbers and a test script used to produce the numbers cited above. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/replace.c')
0 files changed, 0 insertions, 0 deletions