-
Notifications
You must be signed in to change notification settings - Fork 894
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
Slow startup on Windows #1353
Comments
Possibly related to rust-lang/cargo#5028. Is that also the case on your end? |
@alexcrichton
as rustup.exe is faster (without the noticed delay) Did we previously ship debug builds or does rustup download another binary for self-update? |
@steffengy whoa interesting! I think the difference you're seeing is MSVC vs MinGW. I think we ship |
@alexcrichton
The GNU version is fast too. |
Seems like the slow version I have locally is the x86 GNU version: which indeed seems much slower. |
Ah yes I just checked and we were defaulting to |
That should atleast fix it for new installations. How do we fix that for existing installations though? Any better option than making rustup updates prompt for a switch to x86_64 builds on x64-capable systems? |
Nah I think it's definitely a possibility to auto-switch over. I think we could add support for "if you're i686-pc-windows-gnu download i686-pc-windows-msvc instead", I don't believe there are any remaining reasons to use i686-pc-windows-gnu rustup binaries any more |
Interestingly it's really an architecture problem (i686-msvc builds show the same delay). I'll spin up a PR for that tomorrow, if nobody gets to it first :) |
Oh! Sorry I misunderstood. So actually for x86_64 we'll need two fixes. The first is to rustup itself to download the MSVC version in the future, and the second is to rustup.rs (the website) itself. I'm... not sure how do do the latter though. I think I forget how it's even deployed... |
That's what I plan to submit a PR for.
The website currently seems to ship |
@steffengy ah yeah the website unconditionally ships one version, and I just updated an nginx rewriting rule to unconditionally return i686-msvc. Somewhere the website links to https://win.rustup.rs and that location needs to be changed to auto-detect 32/64 bit and redirect to links we manufactur (like |
Seems to be deployed via travis (potentially at least): https://github.com/rust-lang-nursery/rustup.rs/blob/master/ci/prepare-deploy-travis.sh#L54 link at: I guess the part with |
Oh great! I've just updated win.rustup.rs, so the x86_64 and i686 paths should return the respective binaries |
…t-lang#1353) Updates on windows will now switch over to host appropriate versions, ensuring the best user experience (e.g. x86_64 builds on x64). The website can distinguish between Win64/Win32 builds now and a new platform can be introduced more easily.
…t-lang#1353) Updates on windows will now switch over to host appropriate versions, ensuring the best user experience (e.g. x86_64 builds on x64). The website can distinguish between Win64/Win32 builds now and a new platform can be introduced more easily.
…t-lang#1353) Updates on windows will now switch over to host appropriate versions, ensuring the best user experience (e.g. x86_64 builds on x64). The website can distinguish between Win64/Win32 builds now and a new platform can be introduced more easily.
…t-lang#1353) Updates on windows will now switch over to host appropriate versions, ensuring the best user experience (e.g. x86_64 builds on x64). The website can distinguish between Win64/Win32 builds now and a new platform can be introduced more easily.
…t-lang#1353) Updates on windows will now switch over to host appropriate versions, ensuring the best user experience (e.g. x86_64 builds on x64). The website can distinguish between Win64/Win32 builds now and a new platform can be introduced more easily.
windows: detect architecture on website, update to matching arch (#1353) Updates on windows will now switch over to host appropriate versions, ensuring the best user experience (e.g. x86_64 builds on x64). The website can distinguish between Win64/Win32 builds now and a new platform can be introduced more easily. r? @alexcrichton
…t-lang#1353) Updates on windows will now switch over to host appropriate versions, ensuring the best user experience (e.g. x86_64 builds on x64). The website can distinguish between Win64/Win32 builds now and a new platform can be introduced more easily.
So this seems to be solved yes? We're shipping the MSVC binary by default everywhere? I think we can close this ticket, as making the gnu binary faster isn't a rustup project issue, rather its a rustlang toolchain issue. |
I'll take that thumbs up as a yes :). |
windows: detect architecture on website, update to matching arch (rust-lang#1353) Updates on windows will now switch over to host appropriate versions, ensuring the best user experience (e.g. x86_64 builds on x64). The website can distinguish between Win64/Win32 builds now and a new platform can be introduced more easily. r? @alexcrichton
To reproduce:
rustup-init.exe
from https://www.rustup.rs/.rustup --version
.Expected: this command to print its version ("rustup 1.10.0 (c6a8f7c 2018-01-25)") and exit instantly.
Actual behavior: this command takes about one second to print version and exit.
To investigate, I tried building rustup from source. I ran the following commands:
And then
Locally built rustup starts up instantly. The size of the executable is 6MB (for comparison, the official download is 13MB). Could it be that the official download was produced for the wrong configuration (debug build or something)?
I used the following compiler to build it:
The text was updated successfully, but these errors were encountered: