As another piece of evidence in support opt-level=1 being the wrong default, Glenn also got bitten profiling with the wrong options. https://github.com/servo/webrender/issues/1817#issuecomment-340553613
-Jeff On Thu, Oct 26, 2017 at 2:51 PM, Jeff Muizelaar <jmuizel...@mozilla.com> wrote: > FWIW, WebRender becomes unusable opt-level=1. It also looks like style > performance takes quite a hit as well which means that our default > developer builds become unusable for performance work. I worry that > people will forget this and end up rediscovering only when they look > at profiles (as mstange just did). What's the use case for a > --enable-optimize, opt-level=1 build? > > -Jeff > > On Wed, Oct 25, 2017 at 1:34 PM, Gregory Szorc <g...@mozilla.com> wrote: >> Compiling Rust code with optimizations is significantly slower than >> compiling without optimizations. As was measured in bug 1411081, the >> difference between rustc's -Copt-level 1 and 2 on an i7-6700K (4+4 cores) >> for a recent revision of mozilla-central was 325s/802s wall/CPU versus >> 625s/1282s. This made Rust compilation during Firefox builds stand out as a >> long pole and significantly slowed down builds. >> >> Because we couldn't justify the benefits of level 2 for the build time >> overhead it added, we've changed the build system default so Rust is >> compiled with -Copt-level=1 (instead of 2). >> >> Adding --enable-release to your mozconfig (the configuration for builds we >> ship to users) enables -Copt-level=2. (i.e. we didn't change optimization >> settings for builds we ship to users.) >> >> Adding --disable-optimize sets to -Copt-level=0. (This behavior is >> unchanged.) >> >> If you want explicit control over -Copt-level, you can `export >> RUSTC_OPT_LEVEL=<value>` in your mozconfig and that value will always be >> used. --enable-release implies a number of other changes. So if you just >> want to restore the old build system behavior, set this variable in your >> mozconfig. >> >> Also, due to ongoing work around Rust integration in the build system, it >> is dangerous to rely on manual `cargo` invocations to compile Rust because >> bypassing the build system (not using `mach build`) may not use the same >> set of RUSTFLAGS that direct `cargo` invocations do. Things were mostly in >> sync before. But this change and anticipated future changes will cause more >> drift. If you want the correct behavior, use `mach`. >> _______________________________________________ >> dev-platform mailing list >> dev-platform@lists.mozilla.org >> https://lists.mozilla.org/listinfo/dev-platform _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform