Created
May 26, 2015 16:29
-
-
Save amaembo/51c809337b097151e736 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.concurrent.TimeUnit; | |
import java.util.stream.*; | |
import java.util.*; | |
import org.openjdk.jmh.infra.Blackhole; | |
import org.openjdk.jmh.annotations.*; | |
@Warmup(iterations = 5, time = 1000, timeUnit = TimeUnit.MILLISECONDS) | |
@Measurement(iterations = 10, time = 1000, timeUnit = TimeUnit.MILLISECONDS) | |
@BenchmarkMode(Mode.AverageTime) | |
@OutputTimeUnit(TimeUnit.MICROSECONDS) | |
@Fork(2) | |
@State(Scope.Benchmark) | |
public class ConcatTest { | |
@Param({"100","10000","1000000"}) | |
private int n; | |
private int[] input1; | |
private int[] input2; | |
@Setup | |
public void setUp() { | |
input1 = new Random(1).ints(n).toArray(); | |
input2 = new Random(2).ints(n).toArray(); | |
} | |
@Benchmark | |
public void SSS(Blackhole bh) { | |
bh.consume(IntStream.concat(Arrays.stream(input1).filter(x -> x > 0), | |
Arrays.stream(input2).distinct()).sorted().toArray()); | |
} | |
@Benchmark | |
public void SSP(Blackhole bh) { | |
bh.consume(IntStream.concat(Arrays.stream(input1).filter(x -> x > 0), | |
Arrays.stream(input2).distinct()).parallel().sorted().toArray()); | |
} | |
@Benchmark | |
public void SPS(Blackhole bh) { | |
bh.consume(IntStream.concat(Arrays.stream(input1).filter(x -> x > 0), | |
Arrays.stream(input2).parallel().distinct()).sequential().sorted().toArray()); | |
} | |
@Benchmark | |
public void SPP(Blackhole bh) { | |
bh.consume(IntStream.concat(Arrays.stream(input1).filter(x -> x > 0), | |
Arrays.stream(input2).parallel().distinct()).sorted().toArray()); | |
} | |
@Benchmark | |
public void PSS(Blackhole bh) { | |
bh.consume(IntStream.concat(Arrays.stream(input1).parallel().filter(x -> x > 0), | |
Arrays.stream(input2).distinct()).sequential().sorted().toArray()); | |
} | |
@Benchmark | |
public void PSP(Blackhole bh) { | |
bh.consume(IntStream.concat(Arrays.stream(input1).parallel().filter(x -> x > 0), | |
Arrays.stream(input2).distinct()).sorted().toArray()); | |
} | |
@Benchmark | |
public void PPS(Blackhole bh) { | |
bh.consume(IntStream.concat(Arrays.stream(input1).parallel().filter(x -> x > 0), | |
Arrays.stream(input2).parallel().distinct()).sequential().sorted().toArray()); | |
} | |
@Benchmark | |
public void PPP(Blackhole bh) { | |
bh.consume(IntStream.concat(Arrays.stream(input1).parallel().filter(x -> x > 0), | |
Arrays.stream(input2).parallel().distinct()).sorted().toArray()); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Benchmark (n) Mode Cnt Score Error Units | |
ConcatTest.PPP 100 avgt 20 23.078 ± 0.622 us/op | |
ConcatTest.PPP 10000 avgt 20 1128.889 ± 7.964 us/op | |
ConcatTest.PPP 1000000 avgt 20 393699.222 ± 56397.445 us/op | |
ConcatTest.PPS 100 avgt 20 16.412 ± 0.129 us/op | |
ConcatTest.PPS 10000 avgt 20 1816.782 ± 10.875 us/op | |
ConcatTest.PPS 1000000 avgt 20 476311.713 ± 19154.558 us/op | |
ConcatTest.PSP 100 avgt 20 9.877 ± 0.382 us/op | |
ConcatTest.PSP 10000 avgt 20 883.639 ± 13.596 us/op | |
ConcatTest.PSP 1000000 avgt 20 257921.422 ± 7649.434 us/op | |
ConcatTest.PSS 100 avgt 20 7.162 ± 0.241 us/op | |
ConcatTest.PSS 10000 avgt 20 1593.332 ± 7.961 us/op | |
ConcatTest.PSS 1000000 avgt 20 383920.286 ± 6650.890 us/op | |
ConcatTest.SPP 100 avgt 20 23.871 ± 0.285 us/op | |
ConcatTest.SPP 10000 avgt 20 1141.273 ± 9.310 us/op | |
ConcatTest.SPP 1000000 avgt 20 400582.847 ± 27330.492 us/op | |
ConcatTest.SPS 100 avgt 20 16.548 ± 0.175 us/op | |
ConcatTest.SPS 10000 avgt 20 1831.569 ± 13.582 us/op | |
ConcatTest.SPS 1000000 avgt 20 500736.204 ± 37932.197 us/op | |
ConcatTest.SSP 100 avgt 20 6.176 ± 0.043 us/op | |
ConcatTest.SSP 10000 avgt 20 907.855 ± 8.448 us/op | |
ConcatTest.SSP 1000000 avgt 20 264193.679 ± 6744.169 us/op | |
ConcatTest.SSS 100 avgt 20 7.094 ± 0.069 us/op | |
ConcatTest.SSS 10000 avgt 20 1542.820 ± 22.194 us/op | |
ConcatTest.SSS 1000000 avgt 20 350173.723 ± 7140.406 us/op |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment