# HG changeset patch # User shade # Date 1482256351 -3600 # Node ID 4c32eb6c67b0a83ecee5b8893e2966a9b1479e29 # Parent 5b77fb55a8b60f065b76d5fa5084e877ef84eb82 More yield tests. diff -r 5b77fb55a8b6 -r 4c32eb6c67b0 src/main/java/org/openjdk/gcbench/yield/LinkedListGet.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/org/openjdk/gcbench/yield/LinkedListGet.java Tue Dec 20 18:52:31 2016 +0100 @@ -0,0 +1,38 @@ +package org.openjdk.gcbench.yield; + +import org.openjdk.gcbench.tests.UnderPressureTest; +import org.openjdk.jmh.annotations.*; +import org.openjdk.jmh.infra.Blackhole; + +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +@Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) +@Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) +@Fork(1) +@BenchmarkMode(Mode.AverageTime) +@OutputTimeUnit(TimeUnit.NANOSECONDS) +@Threads(Threads.MAX) +@State(Scope.Benchmark) +public class LinkedListGet { + + List list; + + @Param({"100000"}) + int size; + + @Setup + public void setup(Blackhole bh) { + list = new LinkedList<>(); + for (int c = 0; c < size; c++) { + list.add(new Object()); + } + } + + @Benchmark + public Object test() throws InterruptedException { + return list.get(size / 2); + } + +} \ No newline at end of file diff -r 5b77fb55a8b6 -r 4c32eb6c67b0 src/main/java/org/openjdk/gcbench/yield/MonteCarloPI.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/org/openjdk/gcbench/yield/MonteCarloPI.java Tue Dec 20 18:52:31 2016 +0100 @@ -0,0 +1,38 @@ +package org.openjdk.gcbench.yield; + +import org.openjdk.gcbench.tests.UnderPressureTest; +import org.openjdk.jmh.annotations.*; +import org.openjdk.jmh.infra.Blackhole; + +import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; +import java.util.concurrent.TimeUnit; + +@Warmup(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) +@Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) +@Fork(1) +@BenchmarkMode(Mode.AverageTime) +@OutputTimeUnit(TimeUnit.SECONDS) +@Threads(Threads.MAX) +@State(Scope.Benchmark) +public class MonteCarloPI extends UnderPressureTest { + + @Param({"100000000"}) + int size; + + @Benchmark + public int test() throws InterruptedException { + ThreadLocalRandom r = ThreadLocalRandom.current(); + double inside = 0; + for (int c = 0; c < size; c++) { + double x = r.nextDouble(); + double y = r.nextDouble(); + if (x*x + y*y < 1) { + inside++; + } + } + double pi = 4D * inside / size; + return (int) pi; + } + +} \ No newline at end of file