]> git.ipfire.org Git - thirdparty/git.git/commitdiff
trace2: add dots directly to strbuf in perf_fmt_prepare()
authorRené Scharfe <l.s.r@web.de>
Mon, 4 Nov 2019 19:27:54 +0000 (20:27 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 6 Nov 2019 02:45:18 +0000 (11:45 +0900)
The initialization function of the Trace2 performance format target sets
aside a stash of dots for indenting output.  Get rid of it and use
strbuf_addchars() to provide dots on demand instead.  This shortens the
code, gets rid of a small heap allocation and is a bit more efficient.

Signed-off-by: René Scharfe <l.s.r@web.de>
Acked-by: Jeff King <peff@peff.net>
Acked-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
trace2/tr2_tgt_perf.c

index ffac8029ad77b66aa9f94612d896ccda9e31ade0..a8018f18cc87e869d63bc92abf0d4434c320134e 100644 (file)
@@ -26,12 +26,9 @@ static int tr2env_perf_be_brief;
 #define TR2FMT_PERF_REPO_WIDTH (3)
 #define TR2FMT_PERF_CATEGORY_WIDTH (12)
 
-#define TR2_DOTS_BUFFER_SIZE (100)
 #define TR2_INDENT (2)
 #define TR2_INDENT_LENGTH(ctx) (((ctx)->nr_open_regions - 1) * TR2_INDENT)
 
-static struct strbuf dots = STRBUF_INIT;
-
 static int fn_init(void)
 {
        int want = tr2_dst_trace_want(&tr2dst_perf);
@@ -41,8 +38,6 @@ static int fn_init(void)
        if (!want)
                return want;
 
-       strbuf_addchars(&dots, '.', TR2_DOTS_BUFFER_SIZE);
-
        brief = tr2_sysenv_get(TR2_SYSENV_PERF_BRIEF);
        if (brief && *brief &&
            ((want_brief = git_parse_maybe_bool(brief)) != -1))
@@ -54,8 +49,6 @@ static int fn_init(void)
 static void fn_term(void)
 {
        tr2_dst_trace_disable(&tr2dst_perf);
-
-       strbuf_release(&dots);
 }
 
 /*
@@ -138,14 +131,8 @@ static void perf_fmt_prepare(const char *event_name,
        strbuf_addf(buf, "%-*.*s | ", TR2FMT_PERF_CATEGORY_WIDTH,
                    TR2FMT_PERF_CATEGORY_WIDTH, (category ? category : ""));
 
-       if (ctx->nr_open_regions > 0) {
-               int len_indent = TR2_INDENT_LENGTH(ctx);
-               while (len_indent > dots.len) {
-                       strbuf_addbuf(buf, &dots);
-                       len_indent -= dots.len;
-               }
-               strbuf_addf(buf, "%.*s", len_indent, dots.buf);
-       }
+       if (ctx->nr_open_regions > 0)
+               strbuf_addchars(buf, '.', TR2_INDENT_LENGTH(ctx));
 }
 
 static void perf_io_write_fl(const char *file, int line, const char *event_name,