We regularly triage the effects of merged PRs on rustc's speed and memory usage.
Monday evening to Tuesday afternoon in North America is a good time to do it because This Week in Rust (see below) is usually published on Wednesday, US time, and so it means the PR to include the triage details in TWiR can be merged shortly before publication. This time is also shortly before the weekly Rust compiler meeting, where the results are looked at.
First, check the previous triage log entry. Look for responses in PRs, and follow up on any promised actions. (i.e. nag people!)
While looking at the previous triage log entry, take note of the final commit in the revision range from that triage period. The noted final commit $PARENT
will be the parent commit that we use for the current round of triage.
Use the API endpoint to automate building the file:
% curl "https://perf.rust-lang.org/perf/triage?start=$PARENT" > YYYY-MM-DD.md
You can also analyze binary size regressions/improvements using the following command:
% curl "https://perf.rust-lang.org/perf/triage?start=$PARENT&metric=size:linked_artifact" > binary-size.md
The following is a list of items you should look for when interpreting performance results.
Go through each entry in the report and verify that it is properly labeled as a regression, improvement, or a mix of the two. For instance, some entries that are labeled as regressions, are actually not regressions and have only been labeled as such due to noise.
Look for significant changes (regressions or improvements) in the following:
When working with graphs:
To view the code changes:
Understanding the comparison page:
Warning: max rss is much more variable than instruction count. Recheck the “Absolute data” checkbox otherwise the noise becomes unmanageable.
For help understanding how to interpret results, consult the comparison analysis documentation.
Single PR in Merge:
Difficult cases: the merge was a rollup of multiple PRs.
@rust-timer build $SHA
command.Once finished, file a PR adding a link to the log entry in This Week in Rust.
After you have finished the triage, also post a short summary to the t-compiler/performance
stream on Zulip. If you have any questions, you can ask around in that stream.