That said, the measurements I just did today still showed big wins
(~3x), at least for the sample changes that I've been making (adding
new methods, changing method bodies in style). So it may be worth
testing.

Let me use this opportunity to ask a question:

I'd love to get some help coming up with representative changes, or at
least determine what to measure. I was thinking of trying to stand up
automated measurements of the following:

- "Servo dev happiness index"
    - Time to build HEAD on servo incrementally, if HEAD^ is already compiled
    - Perhaps divided by the `+/-` on the diff, LOC, or something.
    - This will be a crazy noisy measurement, but if we look at
medians over time, it can give us some sense of how servo build times
are evolving.
- "Stable, representative diffs"
    - Time to build stylo (baseline) and then with various
"representative" diffs:
    - Editing interior of a method
    - Renaming something
    - Adding new field
    - etc

The latter measurement would focus on stylo because it builds on
stable Rust, and hence we can have some reasonable confidence that it
will keep building on all nighties. Prior attempts tried to build the
script crate, but the version I was testing stopped building on
nightly builds, and I found it hard to port the diffs to the latest
HEAD.

I'd appreciate some help in setting those up!


Niko

On Tue, Oct 3, 2017 at 11:57 AM, Simon Sapin <simon.sa...@exyr.org> wrote:
> At the moment, Servo does not use incremental compilation by default. You
> can enable it by copying servobuild.example to .servobuild in your clone of
> the repository and setting "incremental = true" in the [build] section.
>
> If you’ve done this, **you probably want to reverse it** for a while.
> Incremental compilation in rustc is being rewritten and there are large
> compiler performance regression when it’s enabled. These are visible as the
> big increases on http://perf.rust-lang.org/
>
> We’ve updated Servo two days ago to use a Rust Nightly version with these
> regressions. I’ve measured component/script take ~5x as long to compile as
> with incremental disabled.
>
> I hear that these regressions should be fixed in the next few weeks as the
> rewrite settles down in the compiler, and hopefully the new approach can
> eventually give significantly better perf than before.
>
> This talk by Niko explains the new query-based approach for compiler
> internals:
>
> https://skillsmatter.com/skillscasts/10868-inside-the-rust-compiler
>
> --
> Simon Sapin
> _______________________________________________
> dev-servo mailing list
> dev-servo@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-servo
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to