Skip to content
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

25% compile time increase on beta when building async-std #68864

Closed
jonas-schievink opened this issue Feb 5, 2020 · 11 comments
Closed

25% compile time increase on beta when building async-std #68864

jonas-schievink opened this issue Feb 5, 2020 · 11 comments
Assignees
Labels
A-async-await Area: Async & Await AsyncAwait-Triaged Async-await issues that have been triaged during a working group meeting. C-bug Category: This is a bug. E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-compiletime Issue: Problems and improvements with respect to compile times. P-high High priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@jonas-schievink
Copy link
Contributor

jonas-schievink commented Feb 5, 2020

On my machine, cargo build on async-rs/async-std@1d87583 finishes in ~6.75s on stable 1.41.0, but takes at least 8.50s on the current beta (1.42.0-beta.2 (3d2613e 2020-02-04)), an increase of ~25%.

Recent nightlies are still affected, but my perf improvements in #68606 and #68672 improve things a bit which hides the regression.

@jonas-schievink jonas-schievink added I-compiletime Issue: Problems and improvements with respect to compile times. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. regression-from-stable-to-beta Performance or correctness regression from stable to beta. C-bug Category: This is a bug. A-async-await Area: Async & Await E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example labels Feb 5, 2020
@jonas-schievink
Copy link
Contributor Author

nightly-2020-01-24

6.77s
6.74s

nightly-2020-01-25

8.38s
8.46s

@jonas-schievink
Copy link
Contributor Author

Commits in that range: 41f41b2...c2d141d

@jonas-schievink jonas-schievink removed the E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc label Feb 5, 2020
@pnkfelix
Copy link
Member

pnkfelix commented Feb 6, 2020

@jonas-schievink i figure until we've narrowed to a specific PR, we can keep the needs-bisect tag, right?

@pnkfelix pnkfelix added the E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc label Feb 6, 2020
@pnkfelix
Copy link
Member

pnkfelix commented Feb 6, 2020

triage: P-high. Assigning to self. might be good to see if we can extract a case to add to perf.rlo from this.

@pnkfelix pnkfelix self-assigned this Feb 6, 2020
@pnkfelix pnkfelix added the P-high High priority label Feb 6, 2020
@michaelwoerister
Copy link
Member

Is this for release or debug builds?

@jonas-schievink
Copy link
Contributor Author

This is just a normal cargo build

@tmandry tmandry added AsyncAwait-OnDeck AsyncAwait-Triaged Async-await issues that have been triaged during a working group meeting. labels Feb 11, 2020
@pnkfelix
Copy link
Member

pnkfelix commented Feb 21, 2020

(I cannot reproduce the described regression in a reliable fashion on my Mac.)

@nikomatsakis
Copy link
Contributor

Maybe we can use self-profile to try and narrow down what has changed?

@pnkfelix
Copy link
Member

@jonas-schievink what kind of machine are you using? In particular, what OS (and if Linux, what distribution and version?)

@jonas-schievink
Copy link
Contributor Author

This was on a ThinkPad X1 Carbon running Arch Linux (not sure how up-to-date it was at the time, but not more than a few weeks out of date). I can take another look to narrow this down.

@jonas-schievink
Copy link
Contributor Author

Updating to rustc 1.42.0-beta.5 (4e1c5f0 2020-02-28) seems to fix the regression. I can still reproduce with rustc 1.42.0-beta.2 (3d2613e 2020-02-04).

That diff contains 665a39c, so that might have fixed it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-async-await Area: Async & Await AsyncAwait-Triaged Async-await issues that have been triaged during a working group meeting. C-bug Category: This is a bug. E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-compiletime Issue: Problems and improvements with respect to compile times. P-high High priority regression-from-stable-to-beta Performance or correctness regression from stable to beta. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
Archived in project
Development

No branches or pull requests

5 participants