-
Notifications
You must be signed in to change notification settings - Fork 149
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
Propagate more compile benchmark metadata into the dashboard #1626
Conversation
1f028d2
to
5b7b099
Compare
5b7b099
to
97a7fed
Compare
01cc3c8
to
cd315d9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This LGTM but I'm not familiar with:
- some parts of the collector/api
- using serde in real life, and the intricacies of missing data, backwards compatibility in format, deserialization errors, etc
so maybe another quick look from someone more familiar with these could be worthwhile
This comment was marked as outdated.
This comment was marked as outdated.
b643f52
to
1fad8d3
Compare
This comment was marked as outdated.
This comment was marked as outdated.
|
The frontend side was reviewed by @lqd, also requesting review from @Mark-Simulacrum about the config changes and the propagation of data into |
|
Do these instructions need updating? |
|
Good point! I updated it, along with the glossary. |
…marks metadata Use this preloaded metadata to find stable benchmarks.
…ey produce (binary/library)
f174d4a
to
8e791d0
Compare
This PR adds a new required field to perf-config.json,
artifact. It has to be eitherlibraryorbinary, it specifies which target does the benchmark build. There's now a unit test that checks that allperf-config.jsoncontain this attribute and that they be correctly parsed. Before this would only be found out during actual benchmarking or when displaying the compare page.Furthermore, information about compile-time benchmarks that is useful (e.g. did the benchmark override LTO/CGU/debug information? does it build a binary or a library?) is now propagated into the compare page dashboard.
The information is extracted from the compile benchmark directory (and its
perf-config.jsonandCargo.tomlfiles) via a build script of thesitepackage. It is then sent to the compage page via the API and displayed as a simple tooltip over each benchmark name in the comparison table. The build script takes ~0.05s to execute, and is cached unless something incollector/compile-benchmarkschanges (it seems that the detection whether something has changed is quite fast and doesn't slow downsiterebuilds).In addition, the filters can now hide/show all binaries/all libraries. This filtering is implemented using the newly added metadata.
Fixes: #1619