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

Reply via email to