I filed meta bug 1326328 [1] a few months ago for tracking things we can do
to improve Windows build times. It would be great to file / block existing
bugs against the meta bug to track these issues. There hasn't been much
traction on any of the bugs though, perhaps a good topic for the next
all-hands.

A quick summary of what we have:

   - Bug 1095293 [2] - Use msvc's '/MP' option
   - Bug 1321922 [3] - Use symlinks on windows to avoid copying files into
   the objdir
   - Bug 1326329 [4] - Each time we call 'cl' we spawn 5 processes
   - Bug 1326333 [5] - Build from legit msvc project files to leverage
   msbuild's multiprocess improvements
   - Bug 1326353 [6] - Reduce the amount of console output when building

Integrating suggestions for first-time builders into `mach bootstrap` would
certainly be great (even if it's just a link to a "10 crazy things that
will make your windows build faster!" article). I didn't see a bug for
programmatically disabling power save mode while building, but I recall
that being a potential option.

-e

[1] https://bugzilla.mozilla.org/show_bug.cgi?id=1326328
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=1095293
[3] https://bugzilla.mozilla.org/show_bug.cgi?id=1321922
[4] https://bugzilla.mozilla.org/show_bug.cgi?id=1326329
[5] https://bugzilla.mozilla.org/show_bug.cgi?id=1326333
[6] https://bugzilla.mozilla.org/show_bug.cgi?id=1326353

On Fri, Mar 17, 2017 at 10:36 AM, Ted Mielczarek <t...@mielczarek.org> wrote:

> On Fri, Mar 17, 2017, at 01:12 PM, Chris Peterson wrote:
> > On 3/17/2017 1:45 AM, Honza Bambas wrote:
> > > I have a very similar setup, with even way more exceptions added, but
> > > none of them has the desired effect. Unfortunately, the only way to
> make
> > > MsMpEng shut up is to disable run-time protection completely for the
> > > time of the build. I think it's a bug in Defender.
> >
> > Maybe `mach build` can temporarily disable Defender when building?
>
> You can't programmatically control Windows Defender, even as an
> Administrator. This is a security precaution from Microsoft. It's
> configured with a special user account. I looked into this recently
> because I thought it would be nice if *something* in the build system or
> bootstrap could at least let you know if your build directories were not
> in the list of exclusions.
>
> Back to the original topic, I recently set up a fresh Windows machine
> and I followed the same basic steps (enable performance power mode,
> whitelist a bunch of stuff in Windows Defender) and my build seemed
> basically CPU-bound[1] during the compile tier. Disabling realtime
> protection in Defender made it *slightly* better[2] but didn't have a
> large impact on the overall build time (something like 20s out of ~14m
> total for a clobber).
>
> Ideally we should have this stuff as part of `mach bootstrap` or similar
> so everyone gets their machine configured properly for the fastest
> builds possible.
>
> Related, my next steps were that I was planning to figure out how to
> gather an xperf profile of the entire build process to see if there were
> any obvious speedups left from a system perspective (the resource usage
> graph shows the obvious inefficiencies left that are already known:
> configure + the non-compile tiers), but UIforETW hung when I tried to
> use it to do so and I haven't followed up yet.
>
> -Ted
>
> 1. http://people.mozilla.org/~tmielczarek/build-resource-usage.svg
> 2.
> https://people-mozilla.org/~tmielczarek/build-resource-
> usage-no-defender.svg
> _______________________________________________
> 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