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 <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Derrick Stolee committed
Oct 3, 2018 at 10:12 UTC
53c36670e7f21342fb6017f39e0c91362e50dfe0
1 file changed
+1
-1
commit-graph.c
+1
-1
@@ -720,7 +720,7 @@ void write_commit_graph(const char *obj_dir,
720
struct progress *progress = NULL;
721
722
oids.nr = 0;
723
- oids.alloc = approximate_object_count() / 4;
723
+ oids.alloc = approximate_object_count() / 32;
724
oids.progress = NULL;
725
oids.progress_done = 0;
726