- 
    Bug 
- 
    Resolution: Duplicate
- 
     P4 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
 
-