diff options
author | Jonathan Tan <jonathantanmy@google.com> | 2024-12-03 13:52:54 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-12-10 08:53:59 +0900 |
commit | 911d14203c019d52431b1197dcbf44f163eac024 (patch) | |
tree | 6d7c617d1dc926d5314d4e3bee2467c4520dd05e /builtin/commit-graph.c | |
parent | cc01bad4a9f566cf4453c7edd6b433851b0835e2 (diff) |
index-pack --promisor: dedup before checking links
Commit c08589efdc (index-pack: repack local links into promisor packs,
2024-11-01) fixed a bug with what was believed to be a negligible
decrease in performance [1] [2]. But at $DAYJOB, with at least one repo,
it was found that the decrease in performance was very significant.
Looking at the patch, whenever we parse an object in the packfile to
be indexed, we check the targets of all its outgoing links for its
existence. However, this could be optimized by first collecting all such
targets into an oidset (thus deduplicating them) before checking. Teach
Git to do that.
On a certain fetch from the aforementioned repo, this improved
performance from approximately 7 hours to 24m47.815s. This number will
be further reduced in a subsequent patch.
[1] https://lore.kernel.org/git/CAG1j3zGiNMbri8rZNaF0w+yP+6OdMz0T8+8_Wgd1R_p1HzVasg@mail.gmail.com/
[2] https://lore.kernel.org/git/20241105212849.3759572-1-jonathantanmy@google.com/
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/commit-graph.c')
0 files changed, 0 insertions, 0 deletions