8185853: Generate readability graph at link time and other startup improvements
Alan Bateman
Alan.Bateman at oracle.com
Sun Aug 6 09:31:54 UTC 2017
On 06/08/2017 01:37, mandy chung wrote:
>
> It is good to see more optimization be done at link time that improves
> the startup.
>
> jdk/internal/loader/ClassLoaders.java
> 79 if (cp.length() == 0) cp = null;
> Our launcher and hotspot VM always set "java.class.path" system
> property and so it'll be non-null. It might help the readers to check
> if (cp != null && cp.length() == 0).
Fair point, there is an assumption that the VM is created with either an
initial module or a class path and HotSpot masks that to some extent. So
yes, clearer if we use the above.
>
> jdk/internal/module/SystemModulesMap.java
> 128 Constructor<?> ctor = Class.forName(cn).getConstructor();
> Class.forName(Module, String) will only search the specified module.
> No performance difference since the class exists in java.base but it
> may make it clear to the readers.
The loaded classes haven't been patched to be members of java.base at
this point in the startup so there isn't a Module object to use the
2-arg forName. But yes, a comment might help here.
>
> jdk/tools/jlink/internal/plugins/SystemModulesPlugin.java
> This generates one SystemModules for each module that has a main
> class. A user may create a launcher at link time but specifies a main
> class which may be different to the one in the module descriptor. A
> possible future enhancement is to generate a SystemModules for the
> main class if the launcher is created by jlink.
Yes, I've been thinking about this too and I think it will require a
clean way for jlink to expose the details of launchers to plugins.
> Otherwise, this patch looks good.
Thanks for spending time on this.
-Alan
More information about the jigsaw-dev
mailing list