cache-tree: trace regions for prime_cache_tree

Commands such as "git reset --hard" rebuild the in-memory representation
of the cache tree index extension by parsing tree objects starting at a
known root tree. The performance of this operation can vary widely
depending on the width and depth of the repository's working directory
structure. Measure the time in this operation using trace2 regions in
prime_cache_tree().

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Derrick Stolee 2021-01-04 03:09:14 +00:00 committed by Junio C Hamano
parent 4c3e18723c
commit 0e5c950267

View File

@ -744,10 +744,13 @@ void prime_cache_tree(struct repository *r,
struct index_state *istate, struct index_state *istate,
struct tree *tree) struct tree *tree)
{ {
trace2_region_enter("cache-tree", "prime_cache_tree", the_repository);
cache_tree_free(&istate->cache_tree); cache_tree_free(&istate->cache_tree);
istate->cache_tree = cache_tree(); istate->cache_tree = cache_tree();
prime_cache_tree_rec(r, istate->cache_tree, tree); prime_cache_tree_rec(r, istate->cache_tree, tree);
istate->cache_changed |= CACHE_TREE_CHANGED; istate->cache_changed |= CACHE_TREE_CHANGED;
trace2_region_leave("cache-tree", "prime_cache_tree", the_repository);
} }
/* /*