3 ms·
> There has been talk about faster compile times for years now without that much apparent progress. Really? What makes you say that? Have you tried it? $
by burntsushi 8y ago
> There has been talk about faster compile times for years now without that much apparent progress.
Really? What makes you say that? Have you tried it?
$ git clone git://github.com/BurntSushi/ripgrep
$ cd ripgrep
$ git checkout 0.4.0
$ time cargo +1.12.0 build --release
real 1:09.13
user 2:06.08
sys 2.839
maxmem 359 MB
faults 1292
$ cargo clean
$ time cargo +1.34.0 build --release
real 22.484
user 2:32.66
sys 3.380
maxmem 702 MB
faults 0
That's a >3x wall-clock speedup over the past 2.5 years on a cold start. That's pretty good.
- Thaxll 8y agoThe memory doubled?
- BalinKing 8y agoNot sure if it’s the case here, but decreasing time complexity can often require a corresponding increase in space complexity.
- pcwalton 8y agoI don't know about that specific measurement, but memory usage of the Rust compiler has not doubled in general. If it did, we'd notice immediately, as the script crate in Servo would probably OOM.
- burntsushi 8y agoI wouldn't be surprised if it was due to paralellism, e.g., compiling multiple code units in parallel or even better parallelism at the Cargo level. My stat is just the maximum memory usage reported at any point in time. But that's just a guess. ripgrep itself uses more memory when using parallelism, just because of having more buffers.
- eikenberry 8y ago3X speedup is a definite improvement. I don't use rust regularly, so have been relying on community news for updates and while they have mentioned planned work to increase compilation speed a few times they haven't really talked about any landing (that I saw anyways). Also cold start speed is not really what I care about. I am more concerned with compiler speed while working and running tests. I find that if a language compiler is to slow it breaks flow while testing changes. I haven't seen much mention of the improvements the incremental compiler gives in a while. Last I read was the 2017 blog post [1] during beta and it only showed modest improvements and more recently I only see talk of how it still needs a lot of work [2]. [1] https://internals.rust-lang.org/t/incremental-compilation-beta/4721 https://internals.rust-lang.org/t/incremental-compilation-be... [2] https://nicoburns.com/blog/rust-2019/#compile-times-especially-incremental-debug-compile-times https://nicoburns.com/blog/rust-2019/#compile-times-especial...
- burntsushi 8y agoIncremental compilation was a big improvement over the status quo. I don't follow compiler performance developments. I'm just responding to clarify that there has been performance improvements. They have likely just built up over time. I don't think there was any one specific change that dramatically improved things.