Skip to content

Commit 09fc76e

Browse files
rohitchaudhary2023maibin
authored andcommitted
BAEL-3380 (eugenp#8454)
* initial commit * changes for articlesBAEL-3380 * Removed evaluation article files * BAEL-3380 * adding test case BAEL-3380 * BAEL-3380 * BAEL-3380 - updated tests and removed main class * BAEL-3380 - Updated Test class name * BAEL-3380 - Updated Test class name * BAEL-3380 - Updated testcase names as per BDD naming convention * BAEL 3380 - Added JMH benchmark
1 parent 6a09f4a commit 09fc76e

2 files changed

Lines changed: 107 additions & 0 deletions

File tree

core-java-modules/core-java-arrays-2/pom.xml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@
1919
<groupId>org.apache.commons</groupId>
2020
<artifactId>commons-lang3</artifactId>
2121
<version>${commons-lang3.version}</version>
22+
</dependency>
23+
<dependency>
24+
<groupId>org.openjdk.jmh</groupId>
25+
<artifactId>jmh-core</artifactId>
26+
<version>${jmh.version}</version>
27+
</dependency>
28+
<dependency>
29+
<groupId>org.openjdk.jmh</groupId>
30+
<artifactId>jmh-generator-annprocess</artifactId>
31+
<version>${jmh.version}</version>
2232
</dependency>
2333
<!-- test scoped -->
2434
<dependency>
@@ -37,9 +47,34 @@
3747
<filtering>true</filtering>
3848
</resource>
3949
</resources>
50+
<plugins>
51+
<plugin>
52+
<groupId>org.apache.maven.plugins</groupId>
53+
<artifactId>maven-shade-plugin</artifactId>
54+
<version>3.2.0</version>
55+
<executions>
56+
<execution>
57+
<phase>package</phase>
58+
<goals>
59+
<goal>shade</goal>
60+
</goals>
61+
<configuration>
62+
<finalName>benchmarks</finalName>
63+
<transformers>
64+
<transformer
65+
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
66+
<mainClass>org.openjdk.jmh.Main</mainClass>
67+
</transformer>
68+
</transformers>
69+
</configuration>
70+
</execution>
71+
</executions>
72+
</plugin>
73+
</plugins>
4074
</build>
4175

4276
<properties>
77+
<jmh.version>1.19</jmh.version>
4378
<!-- util -->
4479
<commons-lang3.version>3.9</commons-lang3.version>
4580
<!-- testing -->
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.baeldung.arraysort;
2+
3+
import java.util.Arrays;
4+
import java.util.Random;
5+
import java.util.concurrent.TimeUnit;
6+
7+
import org.openjdk.jmh.annotations.Benchmark;
8+
import org.openjdk.jmh.annotations.BenchmarkMode;
9+
import org.openjdk.jmh.annotations.Fork;
10+
import org.openjdk.jmh.annotations.Level;
11+
import org.openjdk.jmh.annotations.Measurement;
12+
import org.openjdk.jmh.annotations.Mode;
13+
import org.openjdk.jmh.annotations.OutputTimeUnit;
14+
import org.openjdk.jmh.annotations.Param;
15+
import org.openjdk.jmh.annotations.Scope;
16+
import org.openjdk.jmh.annotations.Setup;
17+
import org.openjdk.jmh.annotations.State;
18+
import org.openjdk.jmh.annotations.Warmup;
19+
import org.openjdk.jmh.infra.Blackhole;
20+
21+
@BenchmarkMode(Mode.AverageTime)
22+
@Warmup(iterations = 5)
23+
@Measurement(iterations = 10)
24+
@Fork(2)
25+
@OutputTimeUnit(TimeUnit.MILLISECONDS)
26+
public class ArraySortingBenchmark {
27+
28+
@State(Scope.Benchmark)
29+
public static class ArrayContainer {
30+
31+
@Param({ "1000", "10000", "100000", "1000000" })
32+
int arraySize;
33+
34+
// initial unsorted array
35+
int[] unsortedArray;
36+
37+
//cloned array to sort
38+
int[] arrayToSort;
39+
40+
@Setup(Level.Trial)
41+
public void createUnSortedArray() {
42+
unsortedArray = new int[arraySize];
43+
for (int i = 0; i < arraySize; i++) {
44+
unsortedArray[i] = new Random().nextInt(1000);
45+
}
46+
}
47+
48+
@Setup(Level.Invocation)
49+
public void createUnSortedArrayCopy() {
50+
arrayToSort = unsortedArray.clone();
51+
}
52+
53+
int[] getArrayToSort() {
54+
return arrayToSort;
55+
}
56+
}
57+
58+
@Benchmark
59+
public void benchmark_arrays_parallel_sort(ArrayContainer d, Blackhole b) {
60+
int[] arr = d.getArrayToSort();
61+
Arrays.parallelSort(arr);
62+
b.consume(arr);
63+
}
64+
65+
@Benchmark
66+
public void benchmark_arrays_sort(ArrayContainer d, Blackhole b) {
67+
int[] arr = d.getArrayToSort();
68+
Arrays.sort(arr);
69+
b.consume(arr);
70+
}
71+
72+
}

0 commit comments

Comments
 (0)