# HG changeset patch # User shade # Date 1482170184 -3600 # Node ID d41292cbeb90b7b6d7af8bda29a18940cdf16621 # Parent 1655f5729b5a4f6f27c23883b37988b71890fd7e Tuneup roots.* tests. diff -r 1655f5729b5a -r d41292cbeb90 src/main/java/org/openjdk/gcbench/GCBench.java --- a/src/main/java/org/openjdk/gcbench/GCBench.java Mon Dec 19 18:40:11 2016 +0100 +++ b/src/main/java/org/openjdk/gcbench/GCBench.java Mon Dec 19 18:56:24 2016 +0100 @@ -308,16 +308,19 @@ tests.add(new DimensionalTest(baseOpts, org.openjdk.gcbench.roots.Strings.class, "roots.strings", groupDescr + "Allocates and retains a number of interned Strings.", + Dimensions.heapSize(Sequence.predefined(HeapSizeManager.MIN_HEAP)), Dimensions.size(Sequence.powersOfTen_Sub(100, 100000)) )); tests.add(new DimensionalTest(baseOpts, org.openjdk.gcbench.roots.Synchronizers.class, "roots.synchronizers", groupDescr + "Inflates and retains a number of synchronized objects per each thread.", + Dimensions.heapSize(Sequence.predefined(HeapSizeManager.MIN_HEAP)), Dimensions.size(Sequence.powersOfTen_Sub(100, 100000)) )); tests.add(new DimensionalTest(baseOpts, org.openjdk.gcbench.roots.Locals.class, "roots.locals", groupDescr + "Produces lots of intermediate local variables on thread stacks.", + Dimensions.heapSize(Sequence.predefined(HeapSizeManager.MIN_HEAP)), Dimensions.size(Sequence.powersOfTen_Sub(100, 100000)) )); } diff -r 1655f5729b5a -r d41292cbeb90 src/main/java/org/openjdk/gcbench/roots/Locals.java --- a/src/main/java/org/openjdk/gcbench/roots/Locals.java Mon Dec 19 18:40:11 2016 +0100 +++ b/src/main/java/org/openjdk/gcbench/roots/Locals.java Mon Dec 19 18:56:24 2016 +0100 @@ -2,6 +2,7 @@ import org.openjdk.jmh.annotations.*; import org.openjdk.jmh.infra.Blackhole; +import org.openjdk.jmh.infra.Control; import java.util.ArrayList; import java.util.List; @@ -31,12 +32,12 @@ } @Benchmark - public void test(Blackhole bh) throws InterruptedException { - recursiveLocal(bh, list, 10); + public void test(Control cnt, Blackhole bh) throws InterruptedException { + recursiveLocal(cnt, bh, list, 10); } @CompilerControl(CompilerControl.Mode.DONT_INLINE) - private void recursiveLocal(Blackhole bh, List list, int i) { + private void recursiveLocal(Control cnt, Blackhole bh, List list, int i) { bh.consume(new int[64]); // Allocation pressure to trigger GCs. Object o00, o01, o02, o03, o04, o05, o06, o07, o08, o09; @@ -52,7 +53,14 @@ o07 = list.get(i - 7); o08 = list.get(i - 8); o09 = list.get(i - 9); - recursiveLocal(bh, list, i + 1); + recursiveLocal(cnt, bh, list, i + 1); + } else { + if (cnt.startMeasurement) { + // Do not leave until we are finished + while (!cnt.stopMeasurement) { + bh.consume(new Object()); + } + } } bh.consume(o00); bh.consume(o01); diff -r 1655f5729b5a -r d41292cbeb90 src/main/java/org/openjdk/gcbench/roots/Strings.java --- a/src/main/java/org/openjdk/gcbench/roots/Strings.java Mon Dec 19 18:40:11 2016 +0100 +++ b/src/main/java/org/openjdk/gcbench/roots/Strings.java Mon Dec 19 18:56:24 2016 +0100 @@ -32,7 +32,7 @@ @Benchmark public Object test() throws InterruptedException { // allocation pressure to trigger GCs - return new Object(); + return new byte[64]; } }