package test; import java.util.concurrent.TimeUnit; import java.util.stream.*; import java.util.*; import java.math.*; import org.openjdk.jmh.infra.Blackhole; import org.openjdk.jmh.annotations.*; @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS) @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.MICROSECONDS) @Fork(3) @State(Scope.Benchmark) public class FindTest { private Stream stream() { return IntStream.range(0, 100000) .parallel() .mapToObj(BigInteger::valueOf) .filter(x -> x.isProbablePrime(10)) .filter(x -> x.intValue()>90000); } @Benchmark public Optional findFirst() { return stream().findFirst(); } @Benchmark public Optional findAny() { return stream().findAny(); } @Benchmark public Optional findFirstUnordered() { return stream().unordered().findFirst(); } @Benchmark public Optional findAnyUnordered() { return stream().unordered().findAny(); } }