Skip to content

Instantly share code, notes, and snippets.

@orionll
Created March 26, 2015 12:08
Show Gist options
  • Select an option

  • Save orionll/c64ccb5ac1cd91a56112 to your computer and use it in GitHub Desktop.

Select an option

Save orionll/c64ccb5ac1cd91a56112 to your computer and use it in GitHub Desktop.
Arrays.asList().contains() vs Ints.contains
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import com.google.common.primitives.Ints;
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public class MyBenchmark {
@Benchmark
public boolean arraysAsList() {
return Arrays.asList(3, 4).contains(2);
}
@Benchmark
public boolean intsContains() {
return Ints.contains(new int[] { 3, 4 }, 2);
}
}
# JMH 1.7 (released 6 days ago)
# VM invoker: C:\Program Files\Java\jdk1.8.0_40\jre\bin\java.exe
# VM options: <none>
# Warmup: 20 iterations, 1 s each
# Measurement: 5 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.dive.MyBenchmark.arraysAsList
# Run progress: 0,00% complete, ETA 00:00:50
# Fork: 1 of 1
# Warmup Iteration 1: 7,983 ns/op
# Warmup Iteration 2: 6,856 ns/op
# Warmup Iteration 3: 5,557 ns/op
# Warmup Iteration 4: 6,559 ns/op
# Warmup Iteration 5: 5,438 ns/op
# Warmup Iteration 6: 5,345 ns/op
# Warmup Iteration 7: 5,472 ns/op
# Warmup Iteration 8: 5,286 ns/op
# Warmup Iteration 9: 5,298 ns/op
# Warmup Iteration 10: 5,436 ns/op
# Warmup Iteration 11: 5,869 ns/op
# Warmup Iteration 12: 6,757 ns/op
# Warmup Iteration 13: 6,479 ns/op
# Warmup Iteration 14: 5,591 ns/op
# Warmup Iteration 15: 5,606 ns/op
# Warmup Iteration 16: 5,452 ns/op
# Warmup Iteration 17: 5,585 ns/op
# Warmup Iteration 18: 5,494 ns/op
# Warmup Iteration 19: 5,150 ns/op
# Warmup Iteration 20: 5,210 ns/op
Iteration 1: 5,269 ns/op
Iteration 2: 5,296 ns/op
Iteration 3: 5,438 ns/op
Iteration 4: 5,269 ns/op
Iteration 5: 5,402 ns/op
Result: 5,335 ?(99.9%) 0,306 ns/op [Average]
Statistics: (min, avg, max) = (5,269, 5,335, 5,438), stdev = 0,080
Confidence interval (99.9%): [5,028, 5,641]
# JMH 1.7 (released 6 days ago)
# VM invoker: C:\Program Files\Java\jdk1.8.0_40\jre\bin\java.exe
# VM options: <none>
# Warmup: 20 iterations, 1 s each
# Measurement: 5 iterations, 1 s each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: org.dive.MyBenchmark.intsContains
# Run progress: 50,00% complete, ETA 00:00:25
# Fork: 1 of 1
# Warmup Iteration 1: 5,195 ns/op
# Warmup Iteration 2: 4,598 ns/op
# Warmup Iteration 3: 3,666 ns/op
# Warmup Iteration 4: 3,574 ns/op
# Warmup Iteration 5: 3,437 ns/op
# Warmup Iteration 6: 3,281 ns/op
# Warmup Iteration 7: 3,338 ns/op
# Warmup Iteration 8: 3,345 ns/op
# Warmup Iteration 9: 3,345 ns/op
# Warmup Iteration 10: 3,258 ns/op
# Warmup Iteration 11: 3,393 ns/op
# Warmup Iteration 12: 3,452 ns/op
# Warmup Iteration 13: 3,319 ns/op
# Warmup Iteration 14: 3,452 ns/op
# Warmup Iteration 15: 3,249 ns/op
# Warmup Iteration 16: 3,308 ns/op
# Warmup Iteration 17: 3,272 ns/op
# Warmup Iteration 18: 3,443 ns/op
# Warmup Iteration 19: 3,280 ns/op
# Warmup Iteration 20: 3,390 ns/op
Iteration 1: 3,283 ns/op
Iteration 2: 3,261 ns/op
Iteration 3: 3,238 ns/op
Iteration 4: 3,281 ns/op
Iteration 5: 3,386 ns/op
Result: 3,290 ?(99.9%) 0,220 ns/op [Average]
Statistics: (min, avg, max) = (3,238, 3,290, 3,386), stdev = 0,057
Confidence interval (99.9%): [3,070, 3,510]
# Run complete. Total time: 00:00:51
Benchmark Mode Cnt Score Error Units
MyBenchmark.arraysAsList avgt 5 5,335 ? 0,306 ns/op
MyBenchmark.intsContains avgt 5 3,290 ? 0,220 ns/op
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment