diff options
author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2018-03-24 07:33:53 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-03-26 10:22:25 -0700 |
commit | 6826b8fee3be5a6611e10aa8e548e8523432b176 (patch) | |
tree | d73d2124ff7db1e6ff3e71da6c538e7b07e39eea /builtin/replace.c | |
parent | 296c0159289edde2da09296148c15d852bd56621 (diff) | |
download | git-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