On Wed, Dec 30, 2020 at 11:26 AM Derrick Stolee via GitGitGadget <gitgitgadget@xxxxxxxxx> wrote: > > From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > > Commands such as "git reset --hard" rebuild the in-memory representation > of the cached 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@xxxxxxxxxxxxx> > --- > cache-tree.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/cache-tree.c b/cache-tree.c > index 45fb57b17f3..f135bb77af5 100644 > --- a/cache-tree.c > +++ b/cache-tree.c > @@ -746,7 +746,10 @@ void prime_cache_tree(struct repository *r, > { > cache_tree_free(&istate->cache_tree); > istate->cache_tree = cache_tree(); > + > + trace2_region_enter("cache-tree", "prime_cache_tree", the_repository); Shouldn't this be at the start of the function, a few lines up? > prime_cache_tree_rec(r, istate->cache_tree, tree); > + trace2_region_leave("cache-tree", "prime_cache_tree", the_repository); ...and this be one more line down? (or the string "prime_cache_tree" have a "_rec" added to it?) > istate->cache_changed |= CACHE_TREE_CHANGED; > } > > -- > gitgitgadget >