RFR: 8168073: Speed up URI creation during module bootstrap
Claes Redestad
claes.redestad at oracle.com
Mon Oct 17 11:17:33 UTC 2016
Hi,
one partial cause for startup regressions due to jigsaw is related to
creating
URIs for the location of each module.
By providing a package-private constructor we can avoid the time to scan
and
validate the URI, which takes a little time (executes ~80K bytecodes)
but also
pushes various methods over compilation thresholds during early startup,
which more notably interferes with perceived startup.
http://cr.openjdk.java.net/~redestad/8168073/webrev.01/
https://bugs.openjdk.java.net/browse/JDK-8168073
Notes:
When looking at this I discovered that the existing methods in JavaNetAccess
is no longer in use, and keeping the initialization in URLClassLoader
forces
added classloading and costly initialization no longer needed during normal
bootstrap. Moving JavaNetAccess to URI seems like the natural choice.
By exploiting the lazyness of URI.toString(), this patch also saves a
few Kbs of
retained heap.
Thanks!
/Claes
More information about the core-libs-dev
mailing list