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 AsyncAwait-Triaged C-bug E-needs-bisection E-needs-mcve I-compiletime P-high regression-from-stable-to-beta T-compiler

Comments

@jonas-schievink
Copy link
Member

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 T-compiler regression-from-stable-to-beta C-bug A-async-await E-needs-bisection E-needs-mcve labels Feb 5, 2020
@jonas-schievink
Copy link
Member Author

jonas-schievink commented Feb 5, 2020

nightly-2020-01-24

6.77s
6.74s

nightly-2020-01-25

8.38s
8.46s

@jonas-schievink
Copy link
Member Author

jonas-schievink commented Feb 5, 2020

Commits in that range: 41f41b2...c2d141d

@jonas-schievink jonas-schievink removed the E-needs-bisection 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 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 label Feb 6, 2020
@michaelwoerister
Copy link
Member

michaelwoerister commented Feb 6, 2020

Is this for release or debug builds?

@jonas-schievink
Copy link
Member Author

jonas-schievink commented Feb 6, 2020

This is just a normal cargo build

@tmandry tmandry added AsyncAwait-OnDeck AsyncAwait-Triaged labels Feb 11, 2020
@tmandry tmandry added this to High priority in wg-async-foundations triage Feb 11, 2020
@tmandry tmandry added this to To do in wg-async work 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

nikomatsakis commented Feb 25, 2020

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

@pnkfelix
Copy link
Member

pnkfelix commented Mar 10, 2020

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

@jonas-schievink
Copy link
Member Author

jonas-schievink commented Mar 10, 2020

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
Member Author

jonas-schievink commented Mar 10, 2020

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.

wg-async work automation moved this from To do to Done Mar 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-async-await AsyncAwait-Triaged C-bug E-needs-bisection E-needs-mcve I-compiletime P-high regression-from-stable-to-beta T-compiler
Projects
Development

No branches or pull requests

5 participants