unpack-trees: add trace2 regions
The unpack_trees() method is quite complicated and its performance can change dramatically depending on how it is used. We already have some performance tracing regions, but they have not been updated to the trace2 API. Do so now. We already have trace2 regions in unpack_trees.c:clear_ce_flags(), which uses a linear scan through the index without recursing into trees. 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
c338898a47829cf27ebccf5415c308dd59f9d3a6
1 file changed
+5
unpack-trees.c
+5
@@ -1580,6 +1580,8 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
1580
die("unpack_trees takes at most %d trees", MAX_UNPACK_TREES);
1581
1582
trace_performance_enter();
1583
+ trace2_region_enter("unpack_trees", "unpack_trees", the_repository);
1584
+
1585
if (!core_apply_sparse_checkout || !o->update)
1586
o->skip_sparse_checkout = 1;
1587
if (!o->skip_sparse_checkout && !o->pl) {
@@ -1653,7 +1655,9 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
1655
}
1656
1657
trace_performance_enter();
1658
+ trace2_region_enter("unpack_trees", "traverse_trees", the_repository);
1659
ret = traverse_trees(o->src_index, len, t, &info);
1660
+ trace2_region_leave("unpack_trees", "traverse_trees", the_repository);
1661
trace_performance_leave("traverse_trees");
1662
if (ret < 0)
1663
goto return_failed;
@@ -1741,6 +1745,7 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
1745
done:
1746
if (free_pattern_list)
1747
clear_pattern_list(&pl);
1748
+ trace2_region_leave("unpack_trees", "unpack_trees", the_repository);
1749
trace_performance_leave("unpack_trees");
1750
return ret;
1751