On 03/10/2017 21:51, Nicholas Matsakis wrote:
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.
This 3x is what compared to what?
FWIW, my "5x slower" figure was building the script crate ("mach build
-p script" where the dependencies are already compiled) soon after
upgrading rustc (so possibly with no relevant incremental cache entries)
to 1.22.0-nightly (c6884b12d 2017-09-30).
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!
I can help look into all this with you.
Previously, my benchmark for incremental has been building once, using
"touch" to change the timestamp of some source file (but not change any
contents) and rebuild. It’s not representative of any real workflow, but
so far the results had not been absurdly different from making a read
code change. Maybe the red/green system will change that?
A real change that could occur during debugging and that’s easy to
reproduce at any base commit is adding println!("{:#?}", some_variable)
at a random place in the code.
--
Simon Sapin
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo