RFR: 8349400: Improve startup speed via eliminating nested classes

Roger Riggs rriggs at openjdk.org
Wed Feb 5 15:24:16 UTC 2025


On Sun, 2 Feb 2025 19:35:03 GMT, Shaojin Wen <swen 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.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23411#discussion_r1943166687


More information about the security-dev mailing list