Subject: Re: [PATCH] trace2: log progress time and throughput

From: Ævar Arnfjörð Bjarmason <[email-masked]>
Date: Mon, 21 Jun 2021 03:24:47 +0200

On Tue, May 12 2020, Emily Shaffer wrote:

[Replying to a change long-since merged into git.git's "master"]

> Rather than teaching only one operation, like 'git fetch', how to write
> down throughput to traces, we can learn about a wide range of user
> operations that may seem slow by adding tooling to the progress library
> itself. Operations which display progress are likely to be slow-running
> and the kind of thing we want to monitor for performance anyways. By
> showing object counts and data transfer size, we should be able to
> make some derived measurements to ensure operations are scaling the way
> we expect.

Did you end up using this data for anything?

> [...]
> @@ -320,6 +321,22 @@ void stop_progress(struct progress **p_progress)
>  {
>  	finish_if_sparse(*p_progress);
>  
> +	if (p_progress && *p_progress) {
> +		trace2_data_intmax("progress", the_repository, "total_objects",
> +				   (*p_progress)->total);

We start progress bars for various things in git, yet the trace2 data
calls every such progress bar with a total "total_objects", even though
we may not be counting anything to do with objects.

Wouldn't simply s/total_objects/total/ make more sense here, do you rely
on the name of the current key?