]> git.ipfire.org Git - thirdparty/git.git/commitdiff
pack-bitmap-write.c: instrument number of reused bitmaps
authorTaylor Blau <me@ttaylorr.com>
Wed, 12 Oct 2022 22:01:57 +0000 (18:01 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 13 Oct 2022 20:35:08 +0000 (13:35 -0700)
When debugging bitmap generation performance, it is useful to know how
many bitmaps were generated from scratch, and how many were the result
of permuting the bit-order of an existing bitmap.

Keep track of the latter, and emit the count as a trace2_data line to
aid in debugging.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pack-bitmap-write.c

index a213f5eddc5df2401f1232f37514050ea91efc31..cfa67a510fd9a98ec5461084d08373086de858d5 100644 (file)
@@ -384,6 +384,8 @@ static int fill_bitmap_tree(struct bitmap *bitmap,
        return 0;
 }
 
+static int reused_bitmaps_nr;
+
 static int fill_bitmap_commit(struct bb_commit *ent,
                              struct commit *commit,
                              struct prio_queue *queue,
@@ -409,8 +411,10 @@ static int fill_bitmap_commit(struct bb_commit *ent,
                         * bitmap and add its bits to this one. No need to walk
                         * parents or the tree for this commit.
                         */
-                       if (old && !rebuild_bitmap(mapping, old, ent->bitmap))
+                       if (old && !rebuild_bitmap(mapping, old, ent->bitmap)) {
+                               reused_bitmaps_nr++;
                                continue;
+                       }
                }
 
                /*
@@ -526,6 +530,8 @@ int bitmap_writer_build(struct packing_data *to_pack)
 
        trace2_region_leave("pack-bitmap-write", "building_bitmaps_total",
                            the_repository);
+       trace2_data_intmax("pack-bitmap-write", the_repository,
+                          "building_bitmaps_reused", reused_bitmaps_nr);
 
        stop_progress(&writer.progress);