rust-lang / rustc-perf

Website for graphing performance of rustc

Home Page:https://perf.rust-lang.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Allow displaying the benchmark result detail chart for the full range

Kobzol opened this issue · comments

On the compare page, when you open a benchmark detail (the row with the result of a single benchmark configuration), it shows a 30 day historical graph. If the commit ranges are inputted as dates (instead of SHAs), it would be nice to instead show the chart for the full range of the two dates.

Or even if SHAs are used, it would be nice to be able to flip between "last 30 days" and "full period being viewed". (For my blog posts I always use SHAs because they are precise; if I use a date I don't know exactly which revision I will get.)

I wanted to avoid adding yet another button to the already very complex detail widget (and also switching this based on a button is a bit more complicated than switching on the date range). But if it's not too obtrusive in the UI, why not :)

One way to do it without any extra UI inputs: show 30 days, or the full period, whichever is longer.

Good idea, also thought of that. Yeah, let's do it like that.

This is basically replicating part of the "graphs" page's functionality on the "compare" page, saving you from having to go back and forth.

Based on my understanding, the comparison page can also compare local benchmarks. However, local benchmarks do not include date information in the database. So, what should be displayed in such cases? If one of the commit dates is missing, should we use a 30-day default instead?

Yeah, if dates are missing for the artifact, just use the default 30 day range.

Currently, the graph date range is determined differently based on artifact type. If I understand correctly, in this case, we would like it to be the full range if a start and end are provided. Otherwise, it can just fall back to the current solution.

Oh, I forgot about that logic, thanks for reminding me. Yeah, the logic is actually a bit more complicated at the moment, because it tries to show also future data for master commits, so that we could then compare if a change was noise when seeing the master commit in the "middle" of the 30 day period.

In other words, if you take a look at a master commit, the 30 day chart will show 15 days before the commit and 15 days after it.
@nnethercote I'm not sure if you have noticed this. If we showed the full history (start - end), you probably would not appreciate if it ended at the given date of the end commit + 15 days? :) (although the date of the end commit is marked visibly in the chart)

Showing more than the range is fine if the range is clearly marked.

Ok, I suggest that we do this:

  • For try builds: [-30 days, date of try build]
  • For master builds: [earlier_of(date of master build - 15 days, date of start artifact), date of master build + up to 15 days]