RFR: JDK-8245168 jlink should not be treated as a "small" tool

Erik Joelsson erik.joelsson at oracle.com
Mon May 18 13:16:16 UTC 2020


Should we then add the big flags instead to have some control over 
memory footprint, or are we trusting the default ergonomics to do the 
right thing on every possible build system out there?

/Erik

On 2020-05-18 03:12, Magnus Ihse Bursie wrote:
> 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



More information about the build-dev mailing list