I think that makes sense as a default, with the ability to explicitly --disable-release if people are profiling something specific, know what they're doing, and want faster builds.
On Wed, Apr 25, 2018 at 9:32 AM, Jeff Muizelaar <jmuizel...@mozilla.com> wrote: > At minimum we should make --enable-profiling build with rust-opt. > > -Jeff > > On Wed, Apr 25, 2018 at 11:35 AM, Emilio Cobos Álvarez <emi...@crisal.io> > wrote: > > There's a fair amount of people bitten by this constantly, which see long > > style profiling markers and what's really happening is that they're > > profiling a local opt build, and thus the Rust code in style has barely > any > > optimization and is slow. > > > > I know that shouldn't be a thing, and that people should --enable-release > > for profiling and all that. But given it happens, could we consider > > reverting this change? > > > > -- Emilio > > > > > > On 10/25/17 7:34 PM, Gregory Szorc 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 > _______________________________________________ > 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