-
Enhancement
-
Resolution: Won't Fix
-
P4
-
15
To improve JVM start-up, it may make sense to pre-generate the bytecode interpreter. I've measured the time spent in generating the different parts of the interpreter:
http://hg.openjdk.java.net/jdk/jdk/file/2fbc66ef1a1d/src/hotspot/share/runtime/init.cpp#l108
Time spent in stubRoutines_init1() = 0.380ms (539365 instructions)
Time spent ininterpreter_init() = 1.343ms (3628038 instructions)
Time spent in SharedRuntime::generate_stubs() = 0.173ms (313958 instructions)
total = 1.896ms (4481362 instructions)
Total time of "java -XX:-UsePerfData -cp . HelloWorld" = 43.117ms
1.896 / 43.117 = 4.4%
Because the contents of the interpreter depends on VM options, we would need to pre-generate several versions for popular VM option combinations.
http://hg.openjdk.java.net/jdk/jdk/file/2fbc66ef1a1d/src/hotspot/share/runtime/init.cpp#l108
Time spent in stubRoutines_init1() = 0.380ms (539365 instructions)
Time spent ininterpreter_init() = 1.343ms (3628038 instructions)
Time spent in SharedRuntime::generate_stubs() = 0.173ms (313958 instructions)
total = 1.896ms (4481362 instructions)
Total time of "java -XX:-UsePerfData -cp . HelloWorld" = 43.117ms
1.896 / 43.117 = 4.4%
Because the contents of the interpreter depends on VM options, we would need to pre-generate several versions for popular VM option combinations.
- relates to
-
JDK-8231348 Archive default interpreter
-
- Open
-
-
JDK-8087333 Optionally Pre-Generate the HotSpot Template Interpreter
-
- Resolved
-