Open
Description
cg_llvm
simple-raytracer $ for i in 0 1 2 3 4 5 6 7 8 9; do rm -r target/debug/{deps/libraytracer-*,incremental}; cargo rustc --bin main -- -Ztime-passes 2>/dev/null | grep linking; done
time: 0.792; rss: 202MB linking
time: 0.789; rss: 202MB linking
time: 0.793; rss: 202MB linking
time: 0.789; rss: 203MB linking
time: 0.795; rss: 202MB linking
time: 0.788; rss: 203MB linking
time: 0.786; rss: 206MB linking
time: 0.796; rss: 204MB linking
time: 0.790; rss: 201MB linking
time: 0.795; rss: 203MB linking
cg_clif
simple-raytracer $ for i in 0 1 2 3 4 5 6 7 8 9; do rm -r target/x86_64-unknown-linux-gnu/debug/{deps/libraytracer-*,incremental}; CHANNEL=release ../cargo.sh rustc --bin main -- -Ztime-passes 2>/dev/null | grep linking; done
time: 0.923; rss: 150MB linking
time: 0.924; rss: 150MB linking
time: 0.915; rss: 151MB linking
time: 0.925; rss: 151MB linking
time: 0.915; rss: 152MB linking
time: 0.920; rss: 151MB linking
time: 0.923; rss: 150MB linking
time: 0.913; rss: 150MB linking
time: 0.922; rss: 150MB linking
time: 0.922; rss: 151MB linking
The linker is responsible for more than half of the compilation time of simple-raytracer's lib and bin combined when using cg_clif.