According to the readme, Rust is supported, did anyone tried and noticed improvement? rui314/mold: Mold: A Modern Linker 🦠 https://github.com/rui314/mold
According to the readme, Rust is supported, did anyone tried and noticed improvement? rui314/mold: Mold: A Modern Linker 🦠 https://github.com/rui314/mold
Okay. I updated mold to
v2.0.0
. Added"-Z", "time-passes"
to get link times, ran cargo with--timings
to get CPU utilization graphs. Tested on two projects of mine (the one from yesterday is “X”).Link times are picked as the best from 3-4 runs, changing only white space on
main.rs
.lto="fat"
Observations (
lto="fat"
): As expected, not a lot of utilization of multi-core. Usingcodegen-units
larger than 1 may even cause a regression in link time. Choice of linker betweenlld
andmold
appears to be of no significance.lto="thin"
Observations (
lto="thin"
): Here, we see parallelLLVM_lto_optimize
runs kicking in. Testing withcodegen-units=16
was also done. In that case, the number of parallelLLVM_lto_optimize
runs was so big, the synchronization overhead caused a regression running that test on a humble workstation powered by an Intel i7-7700K processor (4 physical, 8 logical cores only). The results will probably look different running this test case (cu=16) in a more powerful setup. But still, the choice of linker betweenlld
andmold
appears to be of no significance.lto=false
Observations (
lto=false
): Here,codegen-units
becomes the dominant factor with no heavyLLVM_lto_optimize
runs involved. Going abovecodegen-units=8
does not hurt link time. Still, the choice of linker betweenlld
andmold
appears to be of no significance.lto="off"
Observations (
lto="off"
): Same observations aslto=false
. Still, the choice of linker betweenlld
andmold
appears to be of no significance.Debug builds link in <.4 seconds.