RFR: 8168073: Speed up URI creation during module bootstrap

Paul Sandoz paul.sandoz at oracle.com
Mon Oct 17 17:39:48 UTC 2016

Hi Claes,

This looks good.

Did you consider adding asserts to the package private constructor?


> On 17 Oct 2016, at 04:17, Claes Redestad <claes.redestad at oracle.com> wrote:
> 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