From: Junio C Hamano <gitster@pobox.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: git@vger.kernel.org, Jeff Hostetler <jeffhost@microsoft.com>,
Jeff Hostetler via GitGitGadget <gitgitgadget@gmail.com>
Subject: Re: [RFC PATCH] trace2 API: don't save a copy of constant "thread_name"
Date: Thu, 06 Oct 2022 18:16:55 -0700 [thread overview]
Message-ID: <xmqqo7uoh1q0.fsf@gitster.g> (raw)
In-Reply-To: <RFC-patch-1.1-8563d017137-20221007T010829Z-avarab@gmail.com> ("Ævar Arnfjörð Bjarmason"'s message of "Fri, 7 Oct 2022 03:10:06 +0200")
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> A cleaned up version of the test code I had on top of "master", RFC
> because I may still be missing some context here. E.g. maybe there's a
> plan to dynamically construct these thread names?
That's nice to learn, indeed.
> +void jw_object_string_thread(struct json_writer *jw, const char *thread_name,
> + int thread_id)
> +{
> + object_common(jw, "thread");
> + strbuf_addch(&jw->json, '"');
> + jw_strbuf_add_thread_name(&jw->json, thread_name, thread_id);
> + strbuf_addch(&jw->json, '"');
> +}
...
> @@ -107,9 +109,11 @@ static void perf_fmt_prepare(const char *event_name,
> }
>
> strbuf_addf(buf, "d%d | ", tr2_sid_depth());
> - strbuf_addf(buf, "%-*s | %-*s | ", TR2_MAX_THREAD_NAME,
> - ctx->thread_name.buf, TR2FMT_PERF_MAX_EVENT_NAME,
> - event_name);
> + oldlen = buf->len;
> + jw_strbuf_add_thread_name(buf, ctx->thread_name, ctx->thread_id);
> + padlen = TR2_MAX_THREAD_NAME - (buf->len - oldlen);;
> + strbuf_addf(buf, "%-*s | %-*s | ", padlen, "",
> + TR2FMT_PERF_MAX_EVENT_NAME, event_name);
Having to do strbuf_addf() many times may negatively affect perf_*
stuff, if this code is invoked in the hot path. I however tend to
treat anything that involves an I/O not performance critical, and
this certainly falls into that category.
next prev parent reply other threads:[~2022-10-07 1:17 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-04 16:19 [PATCH 0/9] Trace2 timers and counters and some cleanup Jeff Hostetler via GitGitGadget
2022-10-04 16:19 ` [PATCH 1/9] builtin/merge-file: fix compiler warning on MacOS with clang 11.0.0 Jeff Hostetler via GitGitGadget
2022-10-04 16:20 ` [PATCH 2/9] builtin/unpack-objects.c: " Jeff Hostetler via GitGitGadget
2022-10-04 16:20 ` [PATCH 3/9] trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx Jeff Hostetler via GitGitGadget
2022-10-04 16:20 ` [PATCH 4/9] tr2tls: clarify TLS terminology Jeff Hostetler via GitGitGadget
2022-10-04 16:20 ` [PATCH 5/9] trace2: rename trace2 thread_name argument as name_hint Jeff Hostetler via GitGitGadget
2022-10-04 16:20 ` [PATCH 6/9] trace2: convert ctx.thread_name to flex array Jeff Hostetler via GitGitGadget
2022-10-05 11:14 ` Ævar Arnfjörð Bjarmason
2022-10-06 16:28 ` Jeff Hostetler
2022-10-10 18:31 ` Jeff Hostetler
2022-10-05 18:03 ` Junio C Hamano
2022-10-06 21:05 ` Ævar Arnfjörð Bjarmason
2022-10-06 21:50 ` Junio C Hamano
2022-10-07 1:10 ` [RFC PATCH] trace2 API: don't save a copy of constant "thread_name" Ævar Arnfjörð Bjarmason
2022-10-07 1:16 ` Junio C Hamano [this message]
2022-10-07 10:03 ` Ævar Arnfjörð Bjarmason
2022-10-10 19:16 ` Jeff Hostetler
2022-10-11 13:31 ` Ævar Arnfjörð Bjarmason
2022-10-12 13:31 ` Jeff Hostetler
2022-10-10 19:05 ` Jeff Hostetler
2022-10-11 12:52 ` Ævar Arnfjörð Bjarmason
2022-10-11 14:40 ` Junio C Hamano
2022-10-10 18:39 ` [PATCH 6/9] trace2: convert ctx.thread_name to flex array Jeff Hostetler
2022-10-04 16:20 ` [PATCH 7/9] api-trace2.txt: elminate section describing the public trace2 API Jeff Hostetler via GitGitGadget
2022-10-04 16:20 ` [PATCH 8/9] trace2: add stopwatch timers Jeff Hostetler via GitGitGadget
2022-10-04 16:20 ` [PATCH 9/9] trace2: add global counter mechanism Jeff Hostetler via GitGitGadget
2022-10-05 13:04 ` [PATCH 0/9] Trace2 timers and counters and some cleanup Ævar Arnfjörð Bjarmason
2022-10-06 15:45 ` Jeff Hostetler
2022-10-06 18:12 ` Derrick Stolee
2022-10-12 18:52 ` [PATCH v2 0/7] " Jeff Hostetler via GitGitGadget
2022-10-12 18:52 ` [PATCH v2 1/7] trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx Jeff Hostetler via GitGitGadget
2022-10-12 18:52 ` [PATCH v2 2/7] tr2tls: clarify TLS terminology Jeff Hostetler via GitGitGadget
2022-10-13 21:12 ` Junio C Hamano
2022-10-12 18:52 ` [PATCH v2 3/7] api-trace2.txt: elminate section describing the public trace2 API Jeff Hostetler via GitGitGadget
2022-10-12 18:52 ` [PATCH v2 4/7] trace2: rename the thread_name argument to trace2_thread_start Jeff Hostetler via GitGitGadget
2022-10-12 21:06 ` Ævar Arnfjörð Bjarmason
2022-10-20 14:40 ` Jeff Hostetler
2022-10-13 21:12 ` Junio C Hamano
2022-10-12 18:52 ` [PATCH v2 5/7] trace2: convert ctx.thread_name from strbuf to pointer Jeff Hostetler via GitGitGadget
2022-10-13 21:12 ` Junio C Hamano
2022-10-12 18:52 ` [PATCH v2 6/7] trace2: add stopwatch timers Jeff Hostetler via GitGitGadget
2022-10-13 21:12 ` Junio C Hamano
2022-10-20 14:42 ` Jeff Hostetler
2022-10-12 18:52 ` [PATCH v2 7/7] trace2: add global counter mechanism Jeff Hostetler via GitGitGadget
2022-10-20 18:28 ` [PATCH v3 0/8] Trace2 timers and counters and some cleanup Jeff Hostetler via GitGitGadget
2022-10-20 18:28 ` [PATCH v3 1/8] trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx Jeff Hostetler via GitGitGadget
2022-10-20 18:28 ` [PATCH v3 2/8] tr2tls: clarify TLS terminology Jeff Hostetler via GitGitGadget
2022-10-20 18:28 ` [PATCH v3 3/8] api-trace2.txt: elminate section describing the public trace2 API Jeff Hostetler via GitGitGadget
2022-10-20 18:28 ` [PATCH v3 4/8] trace2: rename the thread_name argument to trace2_thread_start Jeff Hostetler via GitGitGadget
2022-10-20 18:28 ` [PATCH v3 5/8] trace2: improve thread-name documentation in the thread-context Jeff Hostetler via GitGitGadget
2022-10-20 18:57 ` Ævar Arnfjörð Bjarmason
2022-10-20 20:15 ` Jeff Hostetler
2022-10-20 18:28 ` [PATCH v3 6/8] trace2: convert ctx.thread_name from strbuf to pointer Jeff Hostetler via GitGitGadget
2022-10-20 18:28 ` [PATCH v3 7/8] trace2: add stopwatch timers Jeff Hostetler via GitGitGadget
2022-10-20 20:25 ` Junio C Hamano
2022-10-20 20:52 ` Jeff Hostetler
2022-10-20 20:55 ` Junio C Hamano
2022-10-21 21:51 ` Jeff Hostetler
2022-10-20 18:28 ` [PATCH v3 8/8] trace2: add global counter mechanism Jeff Hostetler via GitGitGadget
2022-10-24 13:40 ` [PATCH v4 0/8] Trace2 timers and counters and some cleanup Jeff Hostetler via GitGitGadget
2022-10-24 13:41 ` [PATCH v4 1/8] trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx Jeff Hostetler via GitGitGadget
2022-10-24 20:31 ` Junio C Hamano
2022-10-25 12:35 ` Derrick Stolee
2022-10-25 15:40 ` Junio C Hamano
2022-10-24 13:41 ` [PATCH v4 2/8] tr2tls: clarify TLS terminology Jeff Hostetler via GitGitGadget
2022-10-24 13:41 ` [PATCH v4 3/8] api-trace2.txt: elminate section describing the public trace2 API Jeff Hostetler via GitGitGadget
2022-10-24 13:41 ` [PATCH v4 4/8] trace2: rename the thread_name argument to trace2_thread_start Jeff Hostetler via GitGitGadget
2022-10-24 13:41 ` [PATCH v4 5/8] trace2: improve thread-name documentation in the thread-context Jeff Hostetler via GitGitGadget
2022-10-24 13:41 ` [PATCH v4 6/8] trace2: convert ctx.thread_name from strbuf to pointer Jeff Hostetler via GitGitGadget
2022-10-24 13:41 ` [PATCH v4 7/8] trace2: add stopwatch timers Jeff Hostetler via GitGitGadget
2022-10-24 13:41 ` [PATCH v4 8/8] trace2: add global counter mechanism Jeff Hostetler via GitGitGadget
2022-10-25 12:27 ` [PATCH v4 0/8] Trace2 timers and counters and some cleanup Derrick Stolee
2022-10-25 15:36 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqo7uoh1q0.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=avarab@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=jeffhost@microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.