The linking of the JDK image using the jlink tool takes a considerable amount of time. However, the jlink tool is classified as a "small java" tool in the build script. This should only be used on quick small tools where a long startup time has a measurable performance impact. Clearly this does not apply to jlink.

The effect of removing the small tool flags are most pronounced when running a slowdebug build. Robbin Ehn, which made me aware of this, reduced the running time of jlink from 36 to 21 seconds on his machine by removing the "small" flags. On a release build, the effect is much less noticeable, but it's still worth fixing.

Bug: https://bugs.openjdk.java.net/browse/JDK-8245168
Patch inline:
diff --git a/make/autoconf/spec.gmk.in b/make/autoconf/spec.gmk.in
--- a/make/autoconf/spec.gmk.in
+++ b/make/autoconf/spec.gmk.in
@@ -642,7 +642,7 @@
 JAVAC=@FIXPATH@ $(JAVAC_CMD)
 JAVADOC=@FIXPATH@ $(JAVADOC_CMD)
 JAR=@FIXPATH@ $(JAR_CMD)
-JLINK = @FIXPATH@ $(JLINK_CMD) $(JAVA_TOOL_FLAGS_SMALL)
+JLINK = @FIXPATH@ $(JLINK_CMD)
 JMOD = @FIXPATH@ $(JMOD_CMD) $(JAVA_TOOL_FLAGS_SMALL)
 JARSIGNER=@FIXPATH@ $(JARSIGNER_CMD)
 JJS=@FIXPATH@ $(JJS_CMD) $(JAVA_TOOL_FLAGS_SMALL)

/Magnus

Reply via email to