提交 ae417807 编写于 作者: D Derrick Stolee 提交者: Junio C Hamano

trace2:data: pack-objects: add trace2 regions

When studying the performance of 'git push' we would like to know
how much time is spent at various parts of the command. One area
that could cause performance trouble is 'git pack-objects'.

Add trace2 regions around the three main actions taken in this
command:

1. Enumerate objects.
2. Prepare pack.
3. Write pack-file.
Signed-off-by: NDerrick Stolee <dstolee@microsoft.com>
Signed-off-by: NJeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 42fee7a3
......@@ -33,6 +33,7 @@
#include "object-store.h"
#include "dir.h"
#include "midx.h"
#include "trace2.h"
#define IN_PACK(obj) oe_in_pack(&to_pack, obj)
#define SIZE(obj) oe_size(&to_pack, obj)
......@@ -3473,6 +3474,8 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
}
}
trace2_region_enter("pack-objects", "enumerate-objects",
the_repository);
prepare_packing_data(the_repository, &to_pack);
if (progress)
......@@ -3487,12 +3490,23 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix)
if (include_tag && nr_result)
for_each_ref(add_ref_tag, NULL);
stop_progress(&progress_state);
trace2_region_leave("pack-objects", "enumerate-objects",
the_repository);
if (non_empty && !nr_result)
return 0;
if (nr_result)
if (nr_result) {
trace2_region_enter("pack-objects", "prepare-pack",
the_repository);
prepare_pack(window, depth);
trace2_region_leave("pack-objects", "prepare-pack",
the_repository);
}
trace2_region_enter("pack-objects", "write-pack-file", the_repository);
write_pack_file();
trace2_region_leave("pack-objects", "write-pack-file", the_repository);
if (progress)
fprintf_ln(stderr,
_("Total %"PRIu32" (delta %"PRIu32"),"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册