Mercurial > hg > gc-bench
view src/main/java/org/openjdk/gcbench/alloc/uninit/IntArray.java @ 48:afe1acc2f8a1
alloc.uninit.* tests.
author | shade |
---|---|
date | Thu, 15 Dec 2016 19:40:54 +0100 |
parents | src/main/java/org/openjdk/gcbench/alloc/plain/PrimArray.java@f8496889e1ac |
children | eac18811b563 |
line wrap: on
line source
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) @OutputTimeUnit(TimeUnit.NANOSECONDS) @State(Scope.Benchmark) @Fork(jvmArgsPrepend = {"--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED"}) public class IntArray { static final Unsafe U; static final long OFF_REF; static { try { Field unsafeField = Unsafe.class.getDeclaredField("theUnsafe"); unsafeField.setAccessible(true); U = (Unsafe) unsafeField.get(null); OFF_REF = U.objectFieldOffset(IntArray.class.getDeclaredField("ref")); } catch (Exception e) { throw new AssertionError(e); } } @Param({"1"}) int size; @Benchmark public Object test() { return U.allocateUninitializedArray(int.class, size); } }