-
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
NLL can be very slow #47597
Labels
A-NLL
Area: Non-lexical lifetimes (NLL)
C-enhancement
Category: An issue proposing an enhancement or a PR with one.
I-compiletime
Issue: Problems and improvements with respect to compile times.
NLL-performant
Working towards the "performance is good" goal
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
Comments
Full output without NLL:
|
Full output with NLL:
|
cc @rust-lang/wg-compiler-nll |
See also: #47267 (comment) |
I'm going to close this issue. Not because NLL is fast, but because the problem is fairly well understood and this issue is not specific to any particular thing. =) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-NLL
Area: Non-lexical lifetimes (NLL)
C-enhancement
Category: An issue proposing an enhancement or a PR with one.
I-compiletime
Issue: Problems and improvements with respect to compile times.
NLL-performant
Working towards the "performance is good" goal
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
In servo/html5ever@3d5e24b,
RUSTFLAGS="-Ztime-passes" cargo +nightly-2018-01-19 build -j1
(with-j1
to maketime-passes
readable) ends in 31 seconds.With
-Znll
added, it takes 233 seconds, a ~7× slowdown.Each log contains 41
MIR borrow checking
lines. Without NLL they’re all under 1 second. With it, the ones over 1 second are:They add up to roughly all of the time difference. They are for the
serde
,syn
,serde_derive_internals
, andserde_derive
crates respectively.The text was updated successfully, but these errors were encountered: