sorting algorithms benchmarks

This commit is contained in:
mherbaghinyan 2019-01-23 12:09:26 +04:00
parent 2ea39c5110
commit d8da2ef883

View File

@ -11,8 +11,8 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@BenchmarkMode(Mode.AverageTime) @BenchmarkMode(Mode.SingleShotTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS) @OutputTimeUnit(TimeUnit.MINUTES)
@Measurement(batchSize = 100000, iterations = 10) @Measurement(batchSize = 100000, iterations = 10)
@Warmup(batchSize = 100000, iterations = 10) @Warmup(batchSize = 100000, iterations = 10)
public class ArraySortBenchmark { public class ArraySortBenchmark {
@ -20,27 +20,31 @@ public class ArraySortBenchmark {
@State(Scope.Thread) @State(Scope.Thread)
public static class Initialize { public static class Initialize {
String[] array = new String[]{"A", "AB", "B"}; int iterations = 1000;
List<String> list = new ArrayList<>(); int[] array = new int[iterations];
List<Integer> list = new ArrayList<>();
@Setup(Level.Trial) @Setup(Level.Trial)
public void setUp() { public void setUp() {
list.add("A");
list.add("AB"); for (int i = 0; i < iterations; i++) {
list.add("B"); array[i] = i;
list.add(i);
}
} }
} }
@Benchmark @Benchmark
public String[] benchmarkArraysSort(ArraySortBenchmark.Initialize state) { public int[] benchmarkArraysSort(ArraySortBenchmark.Initialize state) {
Arrays.sort(state.array); Arrays.sort(state.array);
return state.array; return state.array;
} }
@Benchmark @Benchmark
public List<String> benchmarkCollectionsSort(ArraySortBenchmark.Initialize state) { public List<Integer> benchmarkCollectionsSort(ArraySortBenchmark.Initialize state) {
Collections.sort(state.list); Collections.sort(state.list);
return state.list; return state.list;
} }