Thought I attached the chart. Here's another attempt. -- Andreas
On Fri, Feb 19, 2016 at 10:06:17PM +0100, Andreas Lundblad wrote: > I spent some time measuring the build times of the java modules with > different settings. > > Attaching a chart of the result. > > Red bars: > - Plain old javac. Sjavac disabled. > > Green bars: > - Sjavac, without breaking up each module into multiple javac invocations. > (This is the default setting.) > > Blue bars: > - Sjavac where each module is split into three parallel javac invocations. > (Note that even without this parallelism the build still parallelises on a > module level.) > > > I did the measurements on my laptop (4 core, i7 @ 2.8 GHz). I measured the > "make clean-java; make java-only" so there should have been no native > compilations going on in the background. > > I don't think there are any surprises in the chart. Since we're (most of the > time) compiling many modules in parallel we get full CPU utilization without > splitting each module into smaller parts. When splitting into smaller parts, > we get lots of implicit compilation for each part, so we're just wasting lots > of cycles. IF however, one were to do this experiment on a, say, 32 core > machine, one might actually get a small speedup by splitting (because even > when we have lots of modules being compiled in parallel, we have cores to > spare). But I'm not sure considering how small most of the modules are. > > -- Andreas