RFR: 8261031: Move some ClassLoader name checking to native/VM

Claes Redestad redestad at openjdk.java.net
Thu Feb 4 13:25:52 UTC 2021


On Thu, 4 Feb 2021 12:54:43 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> This patch moves some sanity checking done in ClassLoader.java to the corresponding endpoints in native or VM code.
>
> src/java.base/share/classes/java/lang/ClassLoader.java line 1259:
> 
>> 1257:     Class<?> findBootstrapClassOrNull(String name) {
>> 1258:         return findBootstrapClass(name);
>> 1259:     }
> 
> I'm confused why this would improve performance.  Wouldn't avoiding the transition between Java to the VM be good?  Or is checkName seldom false, so we're checking valid names for nothing?

It's practically never false, so the checking done here is just extra work. The patch skips execution of a few thousand bytecode on startup as is, but I'm reworking it to try and get rid of the last remaining checkName use clean up the verifyFixClassName/fixClassName use to perhaps consolidate code there for a bit.

-------------

PR: https://git.openjdk.java.net/jdk/pull/2378


More information about the core-libs-dev mailing list