Reduced performance in Java 9.0.1 (vs 8u152)

Roland Westrelin rwestrel at redhat.com
Thu Jan 4 17:08:06 UTC 2018


Hi Martin,

One thing I noticed that seems to affect performance is a change in the
implementation of Unsafe.copyMemory(). JDK-8149159 added some
verification code. Commenting out that verification code recovers some
of the performance and the compiled code for
Lz4RawDecompressor::decompress() is then much closer to that of the 8u
vm.

Roland.

diff --git a/src/java.base/share/classes/jdk/internal/misc/Unsafe.java b/src/java.base/share/classes/jdk/internal/misc/Unsafe.java
--- a/src/java.base/share/classes/jdk/internal/misc/Unsafe.java
+++ b/src/java.base/share/classes/jdk/internal/misc/Unsafe.java
@@ -779,11 +779,11 @@
     public void copyMemory(Object srcBase, long srcOffset,
                            Object destBase, long destOffset,
                            long bytes) {
-        copyMemoryChecks(srcBase, srcOffset, destBase, destOffset, bytes);
-
-        if (bytes == 0) {
-            return;
-        }
+        // copyMemoryChecks(srcBase, srcOffset, destBase, destOffset, bytes);
+
+        // if (bytes == 0) {
+        //     return;
+        // }
 
         copyMemory0(srcBase, srcOffset, destBase, destOffset, bytes);
     }


More information about the hotspot-compiler-dev mailing list