Skip to content

Overall cycle time has regressed ~25% from 2hrs to 2.5hrs #40804

Closed
@alexcrichton

Description

@alexcrichton

Over the past few weeks it looks like our overall cycle time has regressed from ~2hrs to ~2.5 hours (roughly). The main contributing factors to this seem to be:

  • OSX has regressed - I don't know how to easily solve this other than identifying the regression here. More discussion on the issue hopefully.
  • Doubled-up dist builders are taking much longer - This is an unfortunate consequence of rustbuild: Add support for compiling Cargo  #39917. Compiling Cargo takes ~10 minutes so that's an extra 20 minutes right off the bat b/c we double-up dist builders. Furthermore compiling Cargo also requires a stage1 x86_64-unknown-linux-gnu compiler, which previously wasn't needed. That means that the doubled up dist builders are compiling one more rustc. This means that instantly the builders are taking an extra ~40-50 minutes.

AppVeyor in general looks pretty steady around or under 2 hrs, and all other builds are steadily under 2 hours as well. Note that 2 hours I'm taking as the "hard limit" here because that's how much time our absolute slowest builder, android, takes. I don't know how to optimize android any further so my goal has been to keep everything faster than Android.

I don't know how to solve the doubled up dist builder problem other than not doubling up dist builders. That would require an extra 8 builders on Travis. Currently we're using 33/45 slots. This is an unexpected increase in the number of builders so only 4 extra isn't great but it seems better than requiring all PRs to take longer.

Note that I'm considering this somewhat more urgent due to our desire to land the RLS in the distribution in the same manner as Cargo. Compiling the RLS takes ~10 minutes which would regress the doubled-up builders another 20 minutes, which is likely too unacceptable.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions