@@ -0,0 +1,1166 @@
+package org.bui.algorithms;%0A%0Aimport org.openjdk.jmh.annotations.*;%0A%0Aimport java.util.Arrays;%0Aimport java.util.concurrent.ExecutionException;%0Aimport java.util.concurrent.TimeUnit;%0A%0Aimport static org.bui.algorithms.BenchmarkUtils.ARRAY_SIZE_LARGE;%0Aimport static org.bui.algorithms.BenchmarkUtils.ARRAY_SIZE_MEDIUM;%0A%0Apublic class Java8ParallelSortBenchmark %7B%0A%0A  // Small array size%0A%0A  @Benchmark%0A  public Object sortRandomIntArray01()%0A      throws ExecutionException, InterruptedException %7B%0A    Integer%5B%5D data = BenchmarkUtils.randomArray(ARRAY_SIZE_LARGE);%0A    Arrays.parallelSort(data);%0A    return data;%0A  %7D%0A%0A  // Medium array size%0A%0A  @Benchmark%0A  public Integer%5B%5D sortMediumRandomIntArray01()%0A      throws ExecutionException, InterruptedException %7B%0A    Integer%5B%5D data = BenchmarkUtils.randomArray(ARRAY_SIZE_MEDIUM);%0A    Arrays.parallelSort(data);%0A    return data;%0A  %7D%0A%0A  // Large array size%0A%0A  @Benchmark%0A  @OutputTimeUnit(TimeUnit.MINUTES)%0A  public Integer%5B%5D sortLargeRandomIntArray01()%0A      throws ExecutionException, InterruptedException %7B%0A    Integer%5B%5D data = BenchmarkUtils.randomArray(ARRAY_SIZE_LARGE);%0A    Arrays.parallelSort(data);%0A    return data;%0A  %7D%0A%7D%0A

Add java8 parallel merge sort perf test. It's about 15% faster than the fork join merge sort implementation