Skip to content

Instantly share code, notes, and snippets.

@sbcoba
Last active January 26, 2016 02:21
Show Gist options
  • Select an option

  • Save sbcoba/ad2cdf410976a76ea064 to your computer and use it in GitHub Desktop.

Select an option

Save sbcoba/ad2cdf410976a76ea064 to your computer and use it in GitHub Desktop.
import org.openjdk.jmh.annotations.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.IntStream;
import java.util.stream.LongStream;
import java.util.stream.Stream;
@Warmup(iterations = 5)
@Measurement(iterations = 10)
@Fork(1)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MICROSECONDS)
public class SumBenchmark {
@Benchmark
public long primitiveSumTest() {
long sum = 0L;
for (long i = 0L; i < 1000L; i++) {
sum += i;
}
return sum;
}
@Benchmark
public long wrapperSumTest() {
Long sum = 0L;
for (Long i = 0L; i < 1000L; i++) {
sum += i;
}
return sum;
}
@Benchmark
public long wrapper2SumTest() {
Long sum = new Long(0L);
for (Long i = new Long(0L); i < 1000L; i = Long.sum(i, 1L)) {
sum = Long.sum(sum, i);
}
return sum;
}
@Benchmark
public int intStreamSumTest() {
return IntStream.iterate(0, i -> i + 1).limit(1000).sum();
}
@Benchmark
public int intStreamRangeSumTest() {
return IntStream.rangeClosed(0, 1000).sum();
}
@Benchmark
public long longStreamTest() throws Exception {
return LongStream.iterate(0, i -> i + 1).limit(1000).sum();
}
@Benchmark
public long longStreamRangeTest() throws Exception {
return LongStream.rangeClosed(0, 1000).sum();
}
@Benchmark
public long streamTest() throws Exception {
return Stream.iterate(0, i -> i + 1).limit(1000).reduce(Integer::sum).get();
}
}
@sbcoba
Copy link
Author

sbcoba commented Jan 26, 2016

pom.xml dependency

    <dependency>
      <groupId>org.openjdk.jmh</groupId>
      <artifactId>jmh-core</artifactId>
      <version>1.11.3</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.openjdk.jmh</groupId>
      <artifactId>jmh-generator-annprocess</artifactId>
      <version>1.11.3</version>
      <scope>test</scope>
    </dependency>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment