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

Reply via email to