summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDerrick Stolee <dstolee@microsoft.com>2021-01-04 03:09:14 +0000
committerJunio C Hamano <gitster@pobox.com>2021-01-15 23:04:32 -0800
commit0e5c95026752f0aa62e072bcb9e0a4fb93fd482e (patch)
treeaf02861c879c76a713e4b117ee6cbb3c7283975d
parent4c3e18723cc4ba7a74e067e85831530285f4dd35 (diff)
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>
-rw-r--r--cache-tree.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/cache-tree.c b/cache-tree.c
index 45fb57b17f..7da59b2aa0 100644
--- a/cache-tree.c
+++ b/cache-tree.c
@@ -744,10 +744,13 @@ void prime_cache_tree(struct repository *r,
struct index_state *istate,
struct tree *tree)
{
+ trace2_region_enter("cache-tree", "prime_cache_tree", the_repository);
cache_tree_free(&istate->cache_tree);
istate->cache_tree = cache_tree();
+
prime_cache_tree_rec(r, istate->cache_tree, tree);
istate->cache_changed |= CACHE_TREE_CHANGED;
+ trace2_region_leave("cache-tree", "prime_cache_tree", the_repository);
}
/*