On 30/05/2013 05:15, James Miller wrote:
This meant that a fairly simple, standard pass, was being called on over 100x 
more code than it
needed to be. If you want to know why a full build takes so long, there is why.
Since I've been curious about the build times this week, I thought I'd experiment with this assertion in a brute force way: compare the times between a baseline build and a build with every occurrence of #[inline(always)] replaced with #[inline].

The above is not ideal, especially if uint::range and vec::each are not being inlined without an inline(always) directive, as pcwalton mentioned. But it was something easy to try.

This is on a system that's making use of a ccache for the C/C++ portions of the runtime (and I checked it was getting used as the builds ran, via ccache --show-stat), so hopefully its just rustc invocations that are taking the bulk of the time below; but I have not carefully verified that claim.

% cd <baseline-reference-repository>

% time make > ../../rust-baseline-build-log 2>&1
real    23m38.869s
user    22m50.757s
sys    0m55.156s

% cd <repo-with-inline-always-hacked-out>

% time make > ../../rust-reinline-build-log 2>&1
real    20m52.833s
user    20m1.642s
sys    0m56.104s

It's just two data points, but I thought I would share. Two and a half minutes may not seem like a lot, but its quite possible that better tuning would reap more gains here.

Cheers,
-Felix

--
irc: pnkfelix on irc.mozilla.org
email: {fklock, pnkfelix}@mozilla.org

_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to