From: Derrick Stolee Date: Wed, 3 Oct 2018 17:12:19 +0000 (-0700) Subject: commit-graph: reduce initial oid allocation X-Git-Tag: v2.20.0-rc0~151^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=53c36670e7f21342fb6017f39e0c91362e50dfe0;p=git commit-graph: reduce initial oid allocation While writing a commit-graph file, we store the full list of commits in a flat list. We use this list for sorting and ensuring we are closed under reachability. The initial allocation assumed that (at most) one in four objects is a commit. This is a dramatic over-count for many repos, especially large ones. Since we grow the repo dynamically, reduce this count by a factor of eight. We still set it to a minimum of 1024 before allocating. Signed-off-by: Derrick Stolee Signed-off-by: Junio C Hamano --- diff --git a/commit-graph.c b/commit-graph.c index ceca6026b0..e773703e1d 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -720,7 +720,7 @@ void write_commit_graph(const char *obj_dir, struct progress *progress = NULL; oids.nr = 0; - oids.alloc = approximate_object_count() / 4; + oids.alloc = approximate_object_count() / 32; oids.progress = NULL; oids.progress_done = 0;