Commit b2559f47 by Carlos Martín Nieto

pack: preallocate a 64-element chain

Dependency chains are often large and require a few
reallocations. Allocate a 64-element chain before doing anything else to
avoid allocations during the loop.

This value comes from the stack-allocated one git uses. We still
allocate this on the heap, but it does help performance a little bit.
parent e6d10c58
......@@ -1236,6 +1236,7 @@ static int pack_dependency_chain(git_dependency_chain *chain_out, struct git_pac
if (!p->bases.entries && (cache_init(&p->bases) < 0))
return -1;
git_array_init_to_size(chain, 64);
while (!found_base && error == 0) {
struct pack_chain_elem *elem;
git_pack_cache_entry *cached = NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment