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