-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
8u40, 9
-
b31
Recent changes (JDK-8049555 and JDK-8050200) are responsible for massive regression in startup time.
A simple HelloWorld application runs:
for S in `seq 1 100`; do time ~/trunks/jdk9-dev/build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/java Hello; done 2>&1 | grep real | sed -e "s/0m//g" -e "s/s//g" | awk '{ sum += $2; n++ } END { if (n > 0) print sum / n; }'
...yield:
33.3 ms -- jdk9-b30
33.3 ms -- beforeJDK-8049555
48.4 ms -- afterJDK-8049555
48.5 ms -- beforeJDK-8050200
52.9 ms -- afterJDK-8050200
52.9 ms -- jdk9-b31
Both regressions seems to be caused by a heavy lifting in static initializers.
A simple HelloWorld application runs:
for S in `seq 1 100`; do time ~/trunks/jdk9-dev/build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/java Hello; done 2>&1 | grep real | sed -e "s/0m//g" -e "s/s//g" | awk '{ sum += $2; n++ } END { if (n > 0) print sum / n; }'
...yield:
33.3 ms -- jdk9-b30
33.3 ms -- before
48.4 ms -- after
48.5 ms -- before
52.9 ms -- after
52.9 ms -- jdk9-b31
Both regressions seems to be caused by a heavy lifting in static initializers.
- relates to
-
JDK-8058892 FILL_ARRAYS and ARRAYS are eagely initialized in MethodHandleImpl
- Closed
-
JDK-8050200 Make LambdaForm intrinsics detection more robust
- Resolved
-
JDK-8049555 Move varargsArray from sun.invoke.util package to java.lang.invoke
- Resolved