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: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
42fee7a388
commit
ae417807b0
@ -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"),"
|
||||
|
Loading…
Reference in New Issue
Block a user