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>

Derrick Stolee committed Jan 4, 2021 at 03:09 UTC 0e5c95026752f0aa62e072bcb9e0a4fb93fd482e
1 file changed +3
cache-tree.c
+3
@@ -744,10 +744,13 @@ void prime_cache_tree(struct repository *r,
744 struct index_state *istate,
745 struct tree *tree)
746 {
747 + trace2_region_enter("cache-tree", "prime_cache_tree", the_repository);
748 cache_tree_free(&istate->cache_tree);
749 istate->cache_tree = cache_tree();
750 +
751 prime_cache_tree_rec(r, istate->cache_tree, tree);
752 istate->cache_changed |= CACHE_TREE_CHANGED;
753 + trace2_region_leave("cache-tree", "prime_cache_tree", the_repository);
754 }
755
756 /*