On 2016-11-18 7:22 PM, Gregory Szorc wrote: > On Fri, Nov 18, 2016 at 3:50 PM, Ehsan Akhgari <ehsan.akhg...@gmail.com > <mailto:ehsan.akhg...@gmail.com>> wrote: > > Here are the moz.build processing times on my machine when I add one > line to a LOCAL_INCLUDES in one moz.build file: > > 0:02.97 Reticulating splines... > 0:37.16 Finished reading 3131 moz.build files in 23.09s > 0:37.16 Processed into 9325 build config descriptors in 3.62s > 0:37.16 RecursiveMake backend executed in 6.50s > 0:37.16 2951 total backend files; 0 created; 2 updated; 2949 > unchanged; 0 deleted; 54 -> 1110 Makefile > 0:37.16 FasterMake backend executed in 0.50s > 0:37.16 12 total backend files; 0 created; 0 updated; 12 unchanged; 0 > deleted > 0:37.16 Total wall time: 34.22s; CPU time: 16.20s; Efficiency: 47%; > Untracked: 0.50s > > > 0:37.89 Finished reading 3131 moz.build files in 21.90s > 0:37.89 Processed into 9327 build config descriptors in 3.82s > 0:37.89 RecursiveMake backend executed in 7.85s > 0:37.89 2951 total backend files; 0 created; 4 updated; 2947 > unchanged; 0 deleted; 54 -> 1110 Makefile > 0:37.89 FasterMake backend executed in 0.59s > 0:37.89 12 total backend files; 0 created; 0 updated; 12 unchanged; 0 > deleted > 0:37.89 Total wall time: 34.70s; CPU time: 17.70s; Efficiency: 51%; > Untracked: 0.55s > > The clear offender is "reading moz.build files". What's involved in > this process? Is there some low hanging fruit for making it faster? > Are there things non-build developers can do (such as reducing the > number of moz.build files) that would help? > > Is there any way for us to avoid reprocessing the world for every single > moz.build file change? > > > Please tell us a bit more about your machine. Because on my machine... > > Linux > $ ./mach build-backend > 0:00.08 > /home/gps/src/firefox/obj-x86_64-pc-linux-gnu/_virtualenv/bin/python > /home/gps/src/firefox/obj-x86_64-pc-linux-gnu/config.status > Reticulating splines... > Finished reading 3027 moz.build files in 3.79s > Processed into 9028 build config descriptors in 1.54s > RecursiveMake backend executed in 3.00s > 2829 total backend files; 0 created; 0 updated; 2829 unchanged; 0 > deleted; 54 -> 1065 Makefile > FasterMake backend executed in 0.22s > 12 total backend files; 0 created; 0 updated; 12 unchanged; 0 deleted > Total wall time: 8.76s; CPU time: 7.26s; Efficiency: 83%; Untracked: 0.21s > > Windows 10 > $ ./mach build-backend > 0:00.55 > c:/dev/src/firefox/obj-i686-pc-mingw32\_virtualenv\Scripts\python.exe > c:/dev/src/firefox/obj-i686-pc-mingw32\config.status > Reticulating splines... > Finished reading 3041 moz.build files in 7.01s > Processed into 9841 build config descriptors in 3.19s > RecursiveMake backend executed in 3.81s > 2860 total backend files; 0 created; 1 updated; 2859 unchanged; 0 > deleted; 62 -> 1069 Makefile > FasterMake backend executed in 0.38s > 11 total backend files; 0 created; 1 updated; 10 unchanged; 0 deleted > VisualStudio backend executed in 1.71s > Generated Visual Studio solution at > c:/dev/src/firefox/obj-i686-pc-mingw32\msvc\mozilla.sln > Total wall time: 16.43s; CPU time: 16.43s; Efficiency: 100%; Untracked: > 0.33s > > The numbers seem to indicate your machine is a bit old or slow?
Hmm, my machine is a MacBook Pro (this is my main development machine). It's a MacBook Pro (Retina, 15-inch, Mid 2014), 2.8Ghz processor, 16GB Memory, 1TB APPLE SSD SM1024F, Running Sierra 10.12.1. My machine wasn't entirely idle, I had things like a Terminal with a bunch of vim's open, Nightly, Chrome, Thunderbird, LimeChat. But these numbers are in the usual ballpark I get. > FWIW, bug 1308982 is on our radar for speeding up moz.build reading. That's great! I think that will help people like me a lot. Thankfully Chris seems to be currently working on it. But I'm still not sure why we can't only re-process the moz.build file that has changed... Thanks, Ehsan _______________________________________________ dev-builds mailing list dev-builds@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-builds