[PATCH 2/2] commit-graph: reduce initial oid allocation
- From
Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Oct 2, 2018, 14:58 UTC
- Message-ID
- <e29a0eaf032fa011e30a91d8f8c514eefe12d14c.1538492322.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.42.git.gitgitgadget@gmail.com>
From: Derrick Stolee <dstolee@microsoft.com>
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> --- commit-graph.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/commit-graph.c b/commit-graph.c index 7226bd6b58..a24cceb55f 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -721,7 +721,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;
-- gitgitgadget