-
Notifications
You must be signed in to change notification settings - Fork 153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing data: filling in #249
Comments
On a related note: it's not obvious when a benchmark stops compiling. E.g. I just noticed that tokio-webpush-simple has been busted since June 9. If we could have some visual representation of failures on the per-benchmark graphs (interpolated dots in red, maybe?) that would make diagnosis much quicker. (I'm mentioning that here because it seems related to this issue. But perhaps it should be filed as a separate issue.) |
This is relevant for the dashboard view, too. I was puzzled why the dashboard was showing regressions with recent versions. |
After more investigation: most of the versions have measurements for 11 benchmarks, but "master" currently only has 9 because |
@nnethercote left an excellent comment on the rustc tracking issue for compiler performance: rust-lang/rust#48750 (comment).
This issue tracks the implementation of the data fill-in described there.
These are the cases we need to support.
The data structure containing all data is currently a
BTreeMap<Commit, CommitData>
. The rustc-perf server is not aware of what commits exist (i.e., in rust-lang/rust master).I make the contention that if we are missing data for a commit then we should not attempt to fill that data in, at least not yet. It will not affect graphs/summaries since no code will see that data. This also simplifies implementation.
In order to determine whether data needs to be "filled in" I think we'll want to be able to find the "previous" and "next" nodes for every commit. I don't believe the API exposed by BTreeMap trivially allows this for an arbitrary node -- at least not for our keys. As such, we'll want to have a separate list of keys (probably
Vec<Commit>
, maybeVec<CommitHash>
) and aHashMap<Commit, usize>
to find ourselves in that vector. We can then find the previous/next commits.This index should be populated when reloading data, not dynamically created on each lookup.
I believe that mostly settles the implementation concerns here; if a better way exists, I have not thought of it just now, but I'm of course open to it.
The text was updated successfully, but these errors were encountered: