RFR: 8310929: Optimization for Integer.toString [v20]
温绍锦
duke at openjdk.org
Wed Sep 6 16:54:47 UTC 2023
On Wed, 6 Sep 2023 16:10:27 GMT, Roger Riggs <rriggs at openjdk.org> wrote:
> I'd be more comfortable replacing the use of Unsafe with either the ByteArray functions or VarHandles. Using VarHandles will enable future optimizations, whereas Unsafe is a primitive tool and is brittle.
I also agree that using VarHandler is better, but using VarHandler in StringLatin1 causes exception, as follows:
final class StringLatin1 {
private static final VarHandle SHORT = MethodHandles.byteArrayViewVarHandle(short[].class, ByteOrder.LITTLE_ENDIAN);
}
make images
Building target 'images' in configuration 'macosx-aarch64-server-release'
Compiling up to 3452 files for java.base
Updating support/src.zip
Updating images/sec-bin.zip
Optimizing the exploded image
Error occurred during initialization of VM
java.lang.ExceptionInInitializerError
at java.lang.invoke.VarHandle.<clinit>(java.base/VarHandle.java:2246)
at java.lang.invoke.VarHandles.byteArrayViewHandle(java.base/VarHandles.java:258)
at java.lang.invoke.MethodHandles.byteArrayViewVarHandle(java.base/MethodHandles.java:4553)
at java.lang.StringLatin1.<clinit>(java.base/StringLatin1.java:84)
at java.lang.String.equals(java.base/String.java:1863)
at java.util.ImmutableCollections$Set12.<init>(java.base/ImmutableCollections.java:797)
at java.util.Set.of(java.base/Set.java:487)
at jdk.internal.reflect.Reflection.<clinit>(java.base/Reflection.java:58)
at java.security.AccessController.doPrivileged(java.base/AccessController.java:319)
at java.lang.reflect.AccessibleObject.<clinit>(java.base/AccessibleObject.java:524)
Caused by: java.lang.NullPointerException
at java.lang.invoke.MethodHandleStatics.<clinit>(java.base/MethodHandleStatics.java:70)
at java.lang.invoke.VarHandle.<clinit>(java.base/VarHandle.java:2246)
at java.lang.invoke.VarHandles.byteArrayViewHandle(java.base/VarHandles.java:258)
at java.lang.invoke.MethodHandles.byteArrayViewVarHandle(java.base/MethodHandles.java:4553)
at java.lang.StringLatin1.<clinit>(java.base/StringLatin1.java:84)
at java.lang.String.equals(java.base/String.java:1863)
at java.util.ImmutableCollections$Set12.<init>(java.base/ImmutableCollections.java:797)
at java.util.Set.of(java.base/Set.java:487)
at jdk.internal.reflect.Reflection.<clinit>(java.base/Reflection.java:58)
at java.security.AccessController.doPrivileged(java.base/AccessController.java:319)
at java.lang.reflect.AccessibleObject.<clinit>(java.base/AccessibleObject.java:524)
-------------
PR Comment: https://git.openjdk.org/jdk/pull/14699#issuecomment-1708760741
More information about the core-libs-dev
mailing list