On 2016-10-03 09:04, Magnus Ihse Bursie wrote:
On 2016-09-30 16:45, Erik Joelsson wrote:
A while back, we introduced the JAVA_SMALL configuration in the
build, which improved build performance and reduced resource usage
for several small java instances. However, it was never fully applied
to all command lines where it would fit.
I have looked through the entire build and measured performance with
the current "BIG" configuration vs the "SMALL" one. In all cases, the
small config won, especially when measuring total user time, but also
for wall clock time. The total impact on a full build is of course
small, since we already hit the low hanging fruit previously, but
it's still nice to take this optimization all the way.
On my Linux workstation, I save about 3 minutes of user time and a
few seconds of wall clock. On a macpro, 2 minutes of user time and a
few seconds of wall clock.
Bug: https://bugs.openjdk.java.net/browse/JDK-8166965
Webrev: http://cr.openjdk.java.net/~erikj/8166965/webrev.01
Looks good to me. Thanks for continuing to improve performance!
Just a few questions:
* I can't see how the changes in MainSupport.gmk fits in. Is that a
separate issue you fixed?
Right, that is actually unrelated. As I was trying to isolate certain
build steps, I couldn't run targets like "jdk.compiler-gensrc-langtools"
in isolation, because the NO_RECIPES check would prevent them from being
exported to Init.gmk. I could only run jdk.compiler-gensrc, but then
that target triggered a pretty big chain of dependencies
(buildtools-jdk, interim-langtools) that ruined my measurements. This
change fixes the exporting of repo specific targets to Init.gmk.
* Where do we have the "big" configuration? The module compilations?
Elsewhere?
The big Javadoc invocation uses and needs it. When not using the javac
server, the module compilations use it. The javac server has its own set
of flags.
/Erik