Review Request: JDK-8193159: Reduce the number of classes loaded due to NativeLibrary
mandy chung
mandy.chung at oracle.com
Thu Dec 7 05:04:09 UTC 2017
On 12/6/17 6:08 PM, Martin Buchholz wrote:
> Google decided that LinkedList is almost never the best choice, so any
> use of LinkedList is discouraged.
>
> ArrayDeque's backing array never shrinks, so you might want to give it
> an explicit initial size.
>
The initial size is 16 which is okay. I can make it smaller instead:
- static Deque<NativeLibrary> nativeLibraryContext = new
LinkedList<>();
+ static Deque<NativeLibrary> nativeLibraryContext = new
ArrayDeque<>(8);
Mandy
> On Wed, Dec 6, 2017 at 4:33 PM, mandy chung <mandy.chung at oracle.com
> <mailto:mandy.chung at oracle.com>> wrote:
>
> A tiny startup fix - useArrayDeque instead of LinkedList for
> ClassLoader.NativeLibrary which is typically loaded at startup for
> example when loading a JAR file.
>
> Thanks
> Mandy
>
> diff --git
> a/src/java.base/share/classes/java/lang/ClassLoader.java
> b/src/java.base/share/classes/java/lang/ClassLoader.java
> --- a/src/java.base/share/classes/java/lang/ClassLoader.java
> +++ b/src/java.base/share/classes/java/lang/ClassLoader.java
> @@ -38,6 +38,7 @@
> import java.security.PrivilegedAction;
> import java.security.ProtectionDomain;
> import java.security.cert.Certificate;
> +import java.util.ArrayDeque;
> import java.util.Arrays;
> import java.util.Collections;
> import java.util.Deque;
> @@ -45,7 +46,6 @@
> import java.util.HashMap;
> import java.util.HashSet;
> import java.util.Hashtable;
> -import java.util.LinkedList;
> import java.util.Map;
> import java.util.NoSuchElementException;
> import java.util.Objects;
> @@ -2496,7 +2496,7 @@
> }
>
> // native libraries being loaded
> - static Deque<NativeLibrary> nativeLibraryContext = new
> LinkedList<>();
> + static Deque<NativeLibrary> nativeLibraryContext = new
> ArrayDeque<>();
>
> /*
> * The run() method will be invoked when this class
> loader becomes
>
>
More information about the core-libs-dev
mailing list