RFR: 8349400: Improve startup speed via eliminating nested classes
Shaojin Wen
swen at openjdk.org
Wed Feb 5 16:32:10 UTC 2025
On Wed, 5 Feb 2025 15:21:59 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
>> During JVM startup, the class KnownOIDs is loaded. KnownOIDs has 10 anonymous classes, which slows down the startup. This PR is to improve KnownOIDs and eliminate unnecessary embedded classes.
>>
>>
>> Here's how to reproduce this:
>>
>>
>> public class Startup {
>> public static void main(String[] args) {}
>> }
>>
>>
>>
>> java -verbose:class Startup
>>
>>
>>
>> [0.665s][info][class,load] sun.security.util.KnownOIDs
>> [0.666s][info][class,load] sun.security.util.KnownOIDs$1
>> [0.667s][info][class,load] sun.security.util.KnownOIDs$2
>> [0.667s][info][class,load] sun.security.util.KnownOIDs$3
>> [0.668s][info][class,load] sun.security.util.KnownOIDs$4
>> [0.668s][info][class,load] sun.security.util.KnownOIDs$5
>> [0.668s][info][class,load] sun.security.util.KnownOIDs$6
>> [0.668s][info][class,load] sun.security.util.KnownOIDs$7
>> [0.669s][info][class,load] sun.security.util.KnownOIDs$8
>> [0.669s][info][class,load] sun.security.util.KnownOIDs$9
>> [0.669s][info][class,load] sun.security.util.KnownOIDs$10
>
> src/java.base/share/classes/sun/security/util/KnownOIDs.java line 494:
>
>> 492: this.stdName = stdName;
>> 493: this.registerNames = registerNames;
>> 494: this.aliases = new String[0];
>
> Unless this String[] needs to be unique, it would be sufficient to use the same empty array everywhere.
you are right, but accessing static field from enum constructor is not allowed
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23411#discussion_r1943285247
More information about the security-dev
mailing list