Mercurial > hg > gc-bench
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); } }