rust-lang / rust-lang/rustc-perf

Add endpoint for viewing performance change from one nightly to another

Open
#132 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
732
Forks
189
Avg merge
10h 52m
Merged PRs (30d)
43

Description

Following a tweet by @nrc, there are now a number of Twitter bots tweeting out information about the latest nightly. While I was writing one myself, I realized that it'd be really cool to also integrate it with perf.rust-lang.org.

A good first step would be the ability to look up the perf change for a given nightly. Something like http://perf.rust-lang.org/compare.html, except where you can provide ?nightly=<date> in the URL to show the diff between that nightly and the previous benchmark result. I initially thought that compare.html could already do this, but it appears that that's not the case (changing the query parameters does not do anything). It'd also be fine to use revision instead of date in the URL, though it would be slightly more painful to work with.

If we wanted to be even fancier, we could also expose a JSON API endpoint that gives summary information about the performance change. That way it could be directly included in these announcements. Though I realize that that'd be a bunch more work.


Following some digging around for such an endpoint, it appears I may have crashed perf.r-l.o :/
I did find http://perf.rust-lang.org/perf/get in the process though, which looks like it is a little bit like one of these endpoints. But it's not clear how to generate the right arguments to it?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with compare.html and the existing /perf/get endpoint, then trace how nightly dates or revisions are currently passed to the performance data layer. Define the endpoint behavior for comparing a nightly with the previous benchmark result, including the query format and any JSON summary. Done means a requested nightly reliably returns the intended performance diff and can support the stated announcement use case.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.