5 ms·
> Aren't they slower or about as slow as C++, which is notorious for being frustratingly slow, especially for local, non-distributed builds? Yes. Significantly
by maccard 3y ago
> Aren't they slower or about as slow as C++, which is notorious for being frustratingly slow, especially for local, non-distributed builds?
Yes. Significantly slower. The last rust crate I pulled [0] took as long to build as the unreal engine project I work on.
[0] https://github.com/getsentry/symbolicator/ https://github.com/getsentry/symbolicator/
- forrestthewoods 3y agoEhhhhhhhh. Are you talking full build or incremental? How long did it take? Clean and rebuild of Unreal Engine on my 32-core Threadripper takes about 15 minutes. And incremental change to a CPP takes… varies but probably on the order of 30 seconds. Their live coding feature is super slick. I just cloned, downloaded dependencies, and fully built Symbolicator in 3 minutes 15 seconds. A quick incremental change and build tool 45 seconds. My impression is the Rust time was all spent linking. Some big company desperately needs to spend the time to port Mold linker to Windows. Supposedly Microsoft is working on a faster linker. But I think it’d be better to just port Mold.
- IAmLiterallyAB 3y agoMold is ELF only. They'd have to rewrite it anyway. I don't see much point in a Windows port
- forrestthewoods 3y agoIt’s tentatively planned for 3.0. https://github.com/bluewhalesystems/sold/issues/8 https://github.com/bluewhalesystems/sold/issues/8 The file formats are indeed totally different. But the operation of linking is the same at a high-level.
- IAmLiterallyAB 3y agoHuh, interesting
- pjmlp 3y agoIf they ever plan supporting UNIXes like Aix, mainframes or micros, ELF isn't there as well.
- maccard 3y agoMy 32 core threadripper builds ue5 in 12 minutes on Windows. Single file changes on our game are usually under 10 seconds due to unity builds, and a good precompiled header. My first clone on symbolicator took the same length of time on my windows machine. Even with your numbers, 4 minutes to build what is not a particularly large project is bonkers. I
- forrestthewoods 3y agoSounds like we’re on basically the same page. My experience across a wide range of C++ projects and wide range of Rust projects is that they’re roughly comparable in terms of compilation speed. Rust macros can do bad things very quickly. Same as C++ templates. Meanwhile I have some CUDA targets that take over 5 minutes to compile a single file. I feel like if Rust got a super fast incremental linker it’d be in a pretty decent place.
- izacus 3y agoIs using a 32-core CPU as a baseline for speed comparisons some kind of satire in this thread?
- maccard 3y agoNo, threadrippers[0] are commonly used by people working in large compiled codebases. They're expensive, sure, but not incomparable to a top of the range Macbook Pro. [0] https://www.cpubenchmark.net/cpu.php?cpu=AMD+Ryzen+Threadripper+3970X&id=3623 https://www.cpubenchmark.net/cpu.php?cpu=AMD+Ryzen+Threadrip...
- deleted 3y ago[deleted]
- izacus 3y agoI know, I have one and it cost the company about 3x as much as a 16" MacBook Pro. An expense that's very unaffordable for most companies, not to mention most developers. (Even most MBPs are unaffordable for a large set of developers.) I don't think it's as accessible to average C++ or Rust developers as you expect.
- drtgh 3y agoAdditionally, in Windows, when Rust is compiling the Microsoft's linker allays launch the M$ telemetry vctip.exe, that stablish an internet connection [Here is an icon of someone in sad thought]. If anyone knows a method for to avoid such launch (besides connection blocking after launch by firewall ), share it please.
- rascul 3y agoI was curious about a couple numbers. Looks like symbolicator has about 20k lines of rust code and 517 crates it depends on (directly and indirectly).