rust-lang / rustc-perf

Website for graphing performance of rustc
https://perf.rust-lang.org
630 stars 148 forks source link

Discussion about summary and proposed more wide-sweeping changes. #120

Closed Mark-Simulacrum closed 6 years ago

Mark-Simulacrum commented 8 years ago

I've given this a little more thought, and I think it may be a good idea to change our approach to summarizing/displaying data; below is what I believe we should have.

The above would allow graceful removal of crates. More events could be added, though perhaps it would be easier to have only two events (add and remove) with an additional field "reason" that could then link to the issue and concisely discuss why the change was made.

Once we have this system in place, the server would log any problems during loading (for example, empty files) for crates which are not marked as removed. I propose that every June we would move all data from the previous year to the archive. This would prevent having too little data while keeping the overall data size small and subsequently faster to load. The date of data deprecation is chosen to be in the middle of the year, but it ultimately doesn't matter when that happens, or even if it's regular.

@nrc, @nikomatsakis, @nnethercote: What do you think? If I'm given the go-ahead I can start implementing this.

nikomatsakis commented 8 years ago

Seems reasonable to me.

nrc commented 8 years ago

SGTM too

nnethercote commented 8 years ago

We discussed this on IRC. It sounds good to me, and "add" and "remove" seem sufficient. Any change to a benchmark -- either its contents or the way it is measured -- would be treated as removing the old benchmark and adding a new one. We could add numeric suffixes for small changes. For example, in https://github.com/rust-lang-nursery/rustc-benchmarks/pull/20 I fixed the touch target for rust-encoding-0.3.0, which changed what is being measured. With the new scheme this would merit a "remove"/"add" pair, with the newly added benchmark being called something like rust-encoding-0.3.0-1.