Open Bug 1326328 Opened 7 years ago Updated 2 years ago

[meta] Improve Windows build times

Categories

(Firefox Build System :: General, defect)

defect

Tracking

(Not tracked)

People

(Reporter: erahm, Unassigned)

References

(Depends on 6 open bugs)

Details

(Keywords: meta)

This is a meta bug for tracking various improvements we can make to improve Windows build times.
Depends on: 1326329
Depends on: 1321922
I thought we had such a bug already open...
Depends on: 1326333
(In reply to Mike Hommey [:glandium] from comment #1)
> I thought we had such a bug already open...

Perhaps, but I couldn't find one!
I couldn't find one either, surprisingly.
https://blogs.msdn.microsoft.com/vcblog/2016/10/26/recommendations-to-speed-c-builds-in-visual-studio/ is a good source of bugs that could be filed. We've had discussions on many of those topics before, including precompiled headers (various places, including IRL meetings) and /debug:fastlink (bug 1188823).

For PCH, one of the things that post recommends that we haven't explicitly discussed is doing PCH of just the system headers.
Also, we had someone from IncrediBuild reach out to Bill Walker ~18 months ago. I received a forwarded email but never followed up on it. IncrediBuild does look nice. But the fact it costs money and isn't open source is a bit off-putting. I'm sure it's good software. But per-desk software licenses to optimally develop Firefox would be a huge pain.

I've casually mentioned to a few people that Mozilla should invest in creating a proper cross-platform distributed compilation and caching daemon (think sccache + icecc with the killer feature being it works on Windows too). The investment would be either having an employee do it (hi Ted!) or hire a contractor. I'd encourage Ted to assess the feasibility of that. If you run the numbers on what distributed compilation would buy us on Windows, I'm pretty sure we could justify a mid six figures cost to develop said software.
Depends on: 1326353
Depends on: 1326362
Depends on: 1188823
Depends on: 1341504
Depends on: 1346069
(In reply to Mike Hommey [:glandium] from comment #1)
> I thought we had such a bug already open...

bug 459891 :)(In reply to Gregory Szorc [:gps] (away until 2017-03-20) from comment #4)
> For PCH, one of the things that post recommends that we haven't explicitly
> discussed is doing PCH of just the system headers.

PCH has some historical discussion / work in bug 347592 FYI.
Product: Core → Firefox Build System
Looks like incredibuild offers a free version now:

https://www.incredibuild.com/incredibuild-product-overview.html

Note that I just installed that with visual studio community 2017 installer as a package.
Flags: needinfo?(gps)
(In reply to Honza Bambas (:mayhemer) from comment #7)
> Looks like incredibuild offers a free version now:
> 
> https://www.incredibuild.com/incredibuild-product-overview.html
> 
> Note that I just installed that with visual studio community 2017 installer
> as a package.

The "free" stands for "trial".  It's somewhat limited even free (16 cores per machine, 4 machines in a net, IIUC), in 30 days, the limits are even less.

I just roughly tried to make a profile xml file [1] to intercept and remote cl.exe, mozmake.exe etc and I ended up with weird errors, missing unrelated license warnings (turned to be fatal) and overall slowness of configure, and mainly - no distribution of the build :)

definitely not worth my time...

[1] https://www.incredibuild.com/webhelp/#profile_xml_structure.html
The active sccache work to add distributed compilation support combined with our desire to move to Clang on Windows makes IncrediBuild largely irrelevant to us.
Flags: needinfo?(gps)
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.