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.



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.



Reply via email to