[PATCH] 8246633: Improve the performance of ObjectInputStream.resolveClass(ObjectStreamClass)
Peter Kessler (Open Source)
peter.kessler at os.amperecomputing.com
Mon Jun 15 04:03:34 UTC 2020
Alan,
Reflection methods are ignored by the stack walk in
JVM_LatestUserDefinedLoader. That was why I marked
jdk.internal.reflect.DelegatingClassLoader as not a user-defined class.
If the optimization is disabled, then so be it. I am using SPECjbb2015
as an example sophisticated Java application. I think there are plenty
of applications that use ObjectInputStream that do not define their own
ClassLoaders. The proposed patch would help all of them run more
efficiently.
... peter
-----Original Message-----
From: Alan Bateman <Alan.Bateman at oracle.com>
Date: Saturday, June 13, 2020 at 9:06 AM
To: "Peter Kessler (Open Source)" <peter.kessler at os.amperecomputing.com>, Roger Riggs <Roger.Riggs at oracle.com>, "core-libs-dev at openjdk.java.net" <core-libs-dev at openjdk.java.net>
Subject: Re: [PATCH] 8246633: Improve the performance of ObjectInputStream.resolveClass(ObjectStreamClass)
On 13/06/2020 00:19, Peter Kessler (Open Source) wrote:
> :
>
> I settled on a system-wide one-bit cache: There have been no
> user-defined ClassLoaders constructed, so I can not find one on any
> particular stack walk. It may not be the best possible solution, but
> it addresses the issue of useless stack walks in the common case where
> there are no user-defined ClassLoaders.
>
Does this help anything other than SPECjbb2015? Real world code will use
core reflection and other areas of the JDK that create class loaders at
run-time so I assume this optimization will be disabled very quickly. I
think it would be better to look for other solutions.
-Alan
More information about the core-libs-dev
mailing list