On Fri, Mar 17, 2017, at 03:16 PM, Ben Kelly wrote: > On Fri, Mar 17, 2017 at 2:52 PM, Ben Kelly <bke...@mozilla.com> wrote: >> On Fri, Mar 17, 2017 at 2:43 PM, Ted Mielczarek >> <t...@mielczarek.org> wrote: >>
>> >> >> >> >>> Yeah, I specifically meant "CPU-bound during the compile tier", >>> where we compile all the C++ code. If you look at the resource usage >>> graphs I posted it's pretty apparent where that is (the full `mach >>> resource-usage` HTML page has a nicer breakdown of tiers). The stuff >>> before and after compile is not as good, and the tail end of compile >>> gets hung up on some long-pole files, but otherwise it does a pretty >>> good job of saturating available CPU. I also manually monitored disk >>> and memory usage during the second build, and didn't see much there. >>> The disk usage showed ~5% active time, presumably mostly the >>> compiler generating output, and memory usage seemed to be stable at >>> around 9GB for most of the build (I didn't watch during libxul >>> linking, I wouldn't be surprised if it spikes then). >> >> >> That "long pole file" at the end of the js lib is over 10% of my >> compile time. That's not very good parallelism in the compile >> stage IMO. > > This is the part of the build I'm talking about: > > 15:17.80 Unified_cpp_js_src8.cpp > 15:17.90 Unified_cpp_js_src38.cpp > 15:18.33 Unified_cpp_js_src40.cpp > 15:19.96 Unified_cpp_js_src41.cpp > 15:21.41 Unified_cpp_js_src9.cpp > 16:59.13 Interpreter.cpp > 16:59.15 js_static.lib > 16:59.99 module.res > 17:00.04 Creating Resource file: module.res > 17:00.81 StaticXULComponentsStart.cpp > 17:00.99 nsDllMain.cpp > For the 1:38 between Unified_cpp_js_src9.cpp and Interpreter.cpp only > a single cl.exe process is running. I guess thats closer to 8% of the > total build time. Still seems very weird to me. Yeah, the JS engine uses a lot more complex C++ features than the rest of the code in our tree, so it takes longer to compile. This is also why the `FILES_PER_UNIFIED_FILE` setting is lower in js/src than the rest of the tree. We do try to build js/src pretty early in the build, although the exact workings of the compile tier is not something I currently understand. One thing we could try here would be to hack up some instrumentation to record the time taken to compile each source file, which would let us determine if we need to tweak `FILES_PER_UNIFIED_FILE` lower, at least. -Ted _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform