On 08/20/2013 02:27 PM, Graydon Hoare wrote:
Hi,

We had a meeting today that was mostly about cycle time. Integrating a
change on the rust repo currently takes about 2 hours, which is still
far too much. We've tried approaching this from a variety of
perspectives in the past and I feel like possibly I've not conveyed the
cost and work breakdown, or discussed systematic approaches to the
problem yet. I'd like to do so now, as I believe the issues are all
quite solvable and I'd very much like people to shift their energy to
focus more on these matters:

Thanks, Graydon!


  - On valgrind and non-valgrind alike, we're running subprocesses
    inefficiently. This results in both too many threads (which
    hurts valgrind especially badly) and too many blocking calls
    (which hurts all platforms). I believe rewriting std::run to
    use libuv will help significantly here. Alex is on this
    but I imagine he can use help. See
    https://github.com/mozilla/rust/pull/8645

A complete fix here is going to require uv-based process bindings, file bindings, then an API for accessing stdin/out/err, so it will take a while. Alex and Jefferey are both on various portions of this and we'll try to get it done soon. I'm not sure though that this is causing the valgrind regression on the bots - I tried all day to reproduce it and I can't.


  - Concerning metadata compression:

    We could decompress using a different algorithm (or none at
    all) and this might save us some time. But it's been tried
    (see https://github.com/mozilla/rust/issues/6902) and wasn't
    a huge win, and I think the larger win would be to change
    algorithms to avoid reading the entire metadata segment.

I'd like to add some kind of --no-compress-metadata flag to rustc to turn off compression, see what that buys. This is very low-hanging fruit. Algorithmic changes to metadata reading are obviously more important long-term, but ISTM that not compressing is just going to be faster than compressing - no matter what else we do - so to get cycle times down we will want that optimization. Is this ok?


If you have other ideas and areas of concern, or disagree or are unclear
on things I've mentioned in this email, please follow up.

Besides what I mentioned above I'll take another look at how the test suite works and see if I can find any obvious improvements. After that I'll circle back around and see if any of the other things you mentioned are within my grasp.
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to