git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/8] perf/aggregate: implement codespeed JSON output

From
Christian Couder <christian.couder@gmail.com>
Date
Dec 14, 2017, 08:57 UTC
Message-ID
<CAP8UFD1OAwTNAe94DPuJJSAvTa7ojH3sdsK_fkfsW4LUAw+u=Q@mail.gmail.com>
In-Reply-To
<xmqqfu8ewepg.fsf@gitster.mtv.corp.google.com>
On Wed, Dec 13, 2017 at 9:33 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 28 quoted lines
> Christian Couder <christian.couder@gmail.com> writes:
>
>>  my $resultsdir = "test-results";
>> +my $results_section = "";
>>  if (exists $ENV{GIT_PERF_SUBSECTION} and $ENV{GIT_PERF_SUBSECTION} ne "") {
>>       $resultsdir .= "/" . $ENV{GIT_PERF_SUBSECTION};
>> +     $results_section = $ENV{GIT_PERF_SUBSECTION};
>>  }
>
> ...
>
>> +     my $executable;
>> +     if ($results_section eq "") {
>> +             $executable = `uname -o -p`;
>> +     } else {
>> +             $executable = $results_section;
>> +             chomp $executable;
>> +     }
>
> Aside from portability of 'uname -o' Eric raised, I wonder if the
> platform information is still useful even when perf-subsection is
> specified.  With the above code, we can identify that a single
> result is for (say) MacOS only when we are not limiting to a single
> subsection, but wouldn't it be equally a valid desire to be able to
> track performance figures for a single subsection over time and
> being able to say "On MacOS, subsection A's performance dropped
> between release X and X+1 quite a bit, but on Linux x86-64, there
> was no such change" or somesuch?

Yeah, I agree that it would be useful. Unfortunately it looks like the number of fields in Codespeed is limited and I am not sure what will be more important for people in general. Another option would be to have "MacOS" in the "environment" field. Or maybe there is a need for a generic way to customize this. For now I just tried to come up with something sensible for what AEvar and me want to do.

Show 17 quoted lines
> IOW, shouldn't the "executable" label always contain the platform
> information, plus an optional subsection info when (and only when)
> the result is limited to a subsection?
>
> By the way, $results_section that is not an empty string at this
> point must have come from $ENV{GIT_PERF_SUBSECTION}, and from the
> way the environment variable is used in t/perf/run, e.g.
>
>                 (
>                         GIT_PERF_SUBSECTION="$subsec"
>                         export GIT_PERF_SUBSECTION
>                         echo "======== Run for subsection '$GIT_PERF_SUBSECTION' ========"
>                         run_subsection "$@"
>                 )
>
> I do not think we expect it to have a trailing LF.  What's that
> chomp doing there?

It's a silly mistake I made when I reorganized the patches just before sending them. The chomp should be after "$executable = `uname -o -p`;" (so in the other branch of the "if ... else"). I will fix this in the next version.

Previous: Junio C HamanoNext: Junio C Hamano
Message 15 of 20 in “Codespeed perf results”
  1. 0/8 Codespeed perf resultsChristian Couder, Dec 13, 2017
  2. 1/8 perf/aggregate: fix checking ENV{GIT_PERF_SUBSECTION}Christian Couder, Dec 13, 2017
  3. 2/8 perf/aggregate: refactor printing resultsChristian Couder, Dec 13, 2017
  4. 4/8 perf/run: use $default_value instead of $4Christian Couder, Dec 13, 2017
  5. Junio C HamanoDec 13, 2017
  6. Junio C HamanoDec 13, 2017
  7. Christian CouderDec 14, 2017
  8. Christian CouderDec 14, 2017
  9. 8/8 perf/run: read GIT_TEST_REPO_NAME from perf.repoNameChristian Couder, Dec 13, 2017
  10. 7/8 perf/run: learn to send output to codespeed serverChristian Couder, Dec 13, 2017
  11. 3/8 perf/aggregate: implement codespeed JSON outputChristian Couder, Dec 13, 2017
  12. Eric SunshineDec 13, 2017
  13. Christian CouderDec 14, 2017
  14. Junio C HamanoDec 13, 2017
  15. Christian CouderDec 14, 2017
  16. Junio C HamanoDec 14, 2017
  17. 6/8 perf/run: learn about perf.codespeedOutputChristian Couder, Dec 13, 2017
  18. 5/8 perf/run: add conf_opts argument to get_var_from_env_or_config()Christian Couder, Dec 13, 2017
  19. Philip OakleyDec 13, 2017
  20. Christian CouderDec 13, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.