JDK-8171855 : Move package name transformations during module bootstrap into native code
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.lang.module
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2016-12-21
  • Updated: 2019-02-06
  • Resolved: 2017-01-19
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 10 JDK 9
10Fixed 9 b156Fixed
Related Reports
Relates :  
Relates :  
Description
During module setup, we do a number of transformations from package name strings to the VM internal form, e.g., "java.lang" -> "java/lang".

Proof-of-concept patch:
http://cr.openjdk.java.net/~redestad/scratch/module_package_names/

By moving this transformation into the VM we improve a number of startup metrics: fewer early JIT compilations triggered, first GC postponed, and a small improvement in wall clock time (as measured on 1 CPU, 8 cores, no active hyperthreads):

$ time for i in {1..100} ; do $BASELINE/bin/java Hello > /dev/null ; done

real	0m12.856s
user	0m18.360s
sys	0m2.888s

$ time for i in {1..100} ; do $PATCHED/bin/java Hello > /dev/null ; done

real	0m12.687s
user	0m16.784s
sys	0m2.560s