-
Notifications
You must be signed in to change notification settings - Fork 13.2k
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
8% regression in syntex_syntax compile time #43827
Comments
The most suspect change may be the reordering of MIR passes in that commit |
How would I collect that timing data myself? "translation" is LLVM codegen, or does it also include other things (like e.g. MIR passes)? What does "item bodies check" do? That one sounds like it should happen way before my PR changes anything.
Agreed. Unfortunately I have very little idea of what the other passes do exactly; I've gotten lots of help from @arielb1 to get that part of the PR to work. (I'll be traveling soon, so I'll probably not be able to to much of anything before Tuesday.) |
Oh heh I also don't know what "item bodies check" is! It typically corresponds to what I think of as typechecking though, I think. The 28->29s could just be noise maybe? To collect yourself though you can run the compiler with the |
Looking at perf data, LLVM passes seems to be it. The other two are rather noisy, and it's not clear whether the PR in question actually had any effect. |
That would show up as a borrow-checking regression. |
This certainly seems surprising. Seems like a first step would be to reproduce it. |
1.21 is now in beta |
I built the compiler at the tip of my PR, and then another version that uses the old With my PR:
With the old
|
I also went back to the base commit that my PR rests on:
And looked at the commit that has my PR merged:
This all looks like well within noise to me... seems I cannot reproduce the regression. I have no idea how to proceed. (Btw it seems perf broke or lost the ability to look at the times of individual passes :/ or I just can't use it. I always found its UI mystifying.) |
I have to admit, I'm sort of inclined to close this. |
We've recovered the performance on syntex I believe, and in fact it looks like we improved it: https://perf.rust-lang.org/?start=2017-08-01T00%3A00%3A00%2B00%3A00&end=2017-09-12T00%3A00%3A00%2B00%3A00&crates=%5B%22syntex-0.42.2%40000-base%22%5D&stat=instructions%3Au. Closing. |
FWIW, I tried to reproduce at least the end-to-end behavior (measuring the time it takes to compile the entire crate), and while it looked first like I was onto something...
...even though I did two measurements each time and confirmed they are within 1s, this was entirely unreproducible. Some days later, I now get
So, the noise is bigger than the signal. I'm officially giving up on measuring performance of the compiler; gladly this issue is already closed. ;) |
Found through perf.rust-lang.org the compile time for the
syntex_syntax
has regressed by 8%. The graph points to #43403 as the culprit.I've downloaded the
nightly-2017-08-04
andnightly-2017-08-05
toolchains to analyze this regression, where the 08-05 toolchain includes #43403 while 08-04 does not.The main differences I found were:
cc @RalfJung
The text was updated successfully, but these errors were encountered: