changeset 55:27585a7e9a03

Extract AllocUninit.
author shade
date Fri, 16 Dec 2016 17:23:29 +0100
parents adaa1d0e7226
children c796a662ffba
files src/main/java/org/openjdk/gcbench/alloc/uninit/AllocUninit.java src/main/java/org/openjdk/gcbench/alloc/uninit/IntArray.java
diffstat 2 files changed, 25 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/org/openjdk/gcbench/alloc/uninit/AllocUninit.java	Fri Dec 16 17:23:29 2016 +0100
@@ -0,0 +1,24 @@
+package org.openjdk.gcbench.alloc.uninit;
+
+import jdk.internal.misc.Unsafe;
+
+import java.lang.reflect.Field;
+
+public class AllocUninit {
+
+    static final Unsafe U;
+
+    static {
+        try {
+            Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe");
+            unsafeField.setAccessible(true);
+            U = (Unsafe) unsafeField.get(null);
+        } catch (Exception e) {
+            throw new AssertionError(e);
+        }
+    }
+
+    public static Object alloc(int size) {
+        return U.allocateUninitializedArray(int.class, size);
+    }
+}
--- a/src/main/java/org/openjdk/gcbench/alloc/uninit/IntArray.java	Fri Dec 16 12:59:31 2016 +0100
+++ b/src/main/java/org/openjdk/gcbench/alloc/uninit/IntArray.java	Fri Dec 16 17:23:29 2016 +0100
@@ -1,9 +1,7 @@
 package org.openjdk.gcbench.alloc.uninit;
 
-import jdk.internal.misc.Unsafe;
 import org.openjdk.jmh.annotations.*;
 
-import java.lang.reflect.Field;
 import java.util.concurrent.TimeUnit;
 
 @BenchmarkMode(Mode.AverageTime)
@@ -12,24 +10,12 @@
 @Fork(jvmArgsPrepend = {"--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED"})
 public class IntArray {
 
-    static final Unsafe U;
-
-    static {
-        try {
-            Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe");
-            unsafeField.setAccessible(true);
-            U = (Unsafe) unsafeField.get(null);
-        } catch (Exception e) {
-            throw new AssertionError(e);
-        }
-    }
-
     @Param({"1"})
     int size;
 
     @Benchmark
     public Object test() {
-        return U.allocateUninitializedArray(int.class, size);
+        return AllocUninit.alloc(size);
     }
 
 }