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?
Paul.
> 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