diff --git a/libraries-2/pom.xml b/libraries-2/pom.xml
index 8f223e7ea0..c18b4aae64 100644
--- a/libraries-2/pom.xml
+++ b/libraries-2/pom.xml
@@ -118,6 +118,18 @@
crawler4j
${crawler4j.version}
+
+
+
+ org.openjdk.jmh
+ jmh-core
+ ${jmh.version}
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ ${jmh.version}
+
@@ -133,5 +145,6 @@
1.0.0-beta4
1.2.0
0.6.0
+ 1.19
diff --git a/libraries-2/src/test/java/com/baeldung/matrices/MatrixMultiplicationBenchmarking.java b/libraries-2/src/test/java/com/baeldung/matrices/MatrixMultiplicationBenchmarking.java
new file mode 100644
index 0000000000..fff6805a89
--- /dev/null
+++ b/libraries-2/src/test/java/com/baeldung/matrices/MatrixMultiplicationBenchmarking.java
@@ -0,0 +1,11 @@
+package com.baeldung.matrices;
+
+import org.openjdk.jmh.Main;
+
+public class MatrixMultiplicationBenchmarking {
+
+ public static void main(String[] args) throws Exception {
+ Main.main(args);
+ }
+
+}
diff --git a/libraries-apache-commons/src/test/java/com/baeldung/commons/math/RealMatrixUnitTest.java b/libraries-2/src/test/java/com/baeldung/matrices/apache/RealMatrixUnitTest.java
similarity index 76%
rename from libraries-apache-commons/src/test/java/com/baeldung/commons/math/RealMatrixUnitTest.java
rename to libraries-2/src/test/java/com/baeldung/matrices/apache/RealMatrixUnitTest.java
index fca2bf6dd1..05944e7b3a 100644
--- a/libraries-apache-commons/src/test/java/com/baeldung/commons/math/RealMatrixUnitTest.java
+++ b/libraries-2/src/test/java/com/baeldung/matrices/apache/RealMatrixUnitTest.java
@@ -1,15 +1,21 @@
-package com.baeldung.commons.math;
+package com.baeldung.matrices.apache;
import org.apache.commons.math3.linear.Array2DRowRealMatrix;
import org.apache.commons.math3.linear.RealMatrix;
import org.junit.jupiter.api.Test;
+import org.openjdk.jmh.annotations.*;
import static org.assertj.core.api.Assertions.assertThat;
-class RealMatrixUnitTest {
+@BenchmarkMode(Mode.AverageTime)
+@Fork(value = 2)
+@Warmup(iterations = 5)
+@Measurement(iterations = 10)
+public class RealMatrixUnitTest {
@Test
- void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
+ @Benchmark
+ public void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
RealMatrix firstMatrix = new Array2DRowRealMatrix(
new double[][] {
new double[] {1d, 5d},
diff --git a/libraries-2/src/test/java/com/baeldung/matrices/colt/DoubleMatrix2DUnitTest.java b/libraries-2/src/test/java/com/baeldung/matrices/colt/DoubleMatrix2DUnitTest.java
index f21d6ab12c..fb4a419eb0 100644
--- a/libraries-2/src/test/java/com/baeldung/matrices/colt/DoubleMatrix2DUnitTest.java
+++ b/libraries-2/src/test/java/com/baeldung/matrices/colt/DoubleMatrix2DUnitTest.java
@@ -4,13 +4,19 @@ import cern.colt.matrix.DoubleFactory2D;
import cern.colt.matrix.DoubleMatrix2D;
import cern.colt.matrix.linalg.Algebra;
import org.junit.jupiter.api.Test;
+import org.openjdk.jmh.annotations.*;
import static org.assertj.core.api.Assertions.assertThat;
-class DoubleMatrix2DUnitTest {
+@BenchmarkMode(Mode.AverageTime)
+@Fork(value = 2)
+@Warmup(iterations = 5)
+@Measurement(iterations = 10)
+public class DoubleMatrix2DUnitTest {
@Test
- void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
+ @Benchmark
+ public void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
DoubleFactory2D doubleFactory2D = DoubleFactory2D.dense;
DoubleMatrix2D firstMatrix = doubleFactory2D.make(
@@ -41,4 +47,5 @@ class DoubleMatrix2DUnitTest {
assertThat(actual).isEqualTo(expected);
}
+
}
diff --git a/libraries-2/src/test/java/com/baeldung/matrices/ejml/SimpleMatrixUnitTest.java b/libraries-2/src/test/java/com/baeldung/matrices/ejml/SimpleMatrixUnitTest.java
index eb022d752f..b025266a1d 100644
--- a/libraries-2/src/test/java/com/baeldung/matrices/ejml/SimpleMatrixUnitTest.java
+++ b/libraries-2/src/test/java/com/baeldung/matrices/ejml/SimpleMatrixUnitTest.java
@@ -2,13 +2,19 @@ package com.baeldung.matrices.ejml;
import org.ejml.simple.SimpleMatrix;
import org.junit.jupiter.api.Test;
+import org.openjdk.jmh.annotations.*;
import static org.assertj.core.api.Assertions.assertThat;
-class SimpleMatrixUnitTest {
+@BenchmarkMode(Mode.AverageTime)
+@Fork(value = 2)
+@Warmup(iterations = 5)
+@Measurement(iterations = 10)
+public class SimpleMatrixUnitTest {
@Test
- void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
+ @Benchmark
+ public void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
SimpleMatrix firstMatrix = new SimpleMatrix(
new double[][] {
new double[] {1d, 5d},
@@ -36,4 +42,5 @@ class SimpleMatrixUnitTest {
assertThat(actual).matches(m -> m.isIdentical(expected, 0d));
}
+
}
diff --git a/libraries-2/src/test/java/com/baeldung/matrices/homemade/MatrixUnitTest.java b/libraries-2/src/test/java/com/baeldung/matrices/homemade/HomemadeMatrixUnitTest.java
similarity index 84%
rename from libraries-2/src/test/java/com/baeldung/matrices/homemade/MatrixUnitTest.java
rename to libraries-2/src/test/java/com/baeldung/matrices/homemade/HomemadeMatrixUnitTest.java
index b118e5503d..be9e483d5b 100644
--- a/libraries-2/src/test/java/com/baeldung/matrices/homemade/MatrixUnitTest.java
+++ b/libraries-2/src/test/java/com/baeldung/matrices/homemade/HomemadeMatrixUnitTest.java
@@ -1,13 +1,19 @@
package com.baeldung.matrices.homemade;
import org.junit.jupiter.api.Test;
+import org.openjdk.jmh.annotations.*;
import static org.assertj.core.api.Assertions.assertThat;
-class MatrixUnitTest {
+@BenchmarkMode(Mode.AverageTime)
+@Fork(value = 2)
+@Warmup(iterations = 5)
+@Measurement(iterations = 10)
+public class HomemadeMatrixUnitTest {
@Test
- void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
+ @Benchmark
+ public void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
double[][] firstMatrix = {
new double[]{1d, 5d},
new double[]{2d, 3d},
diff --git a/libraries-2/src/test/java/com/baeldung/matrices/la4j/Basic2DMatrixUnitTest.java b/libraries-2/src/test/java/com/baeldung/matrices/la4j/Basic2DMatrixUnitTest.java
index ef2d50aa08..afb84ff3db 100644
--- a/libraries-2/src/test/java/com/baeldung/matrices/la4j/Basic2DMatrixUnitTest.java
+++ b/libraries-2/src/test/java/com/baeldung/matrices/la4j/Basic2DMatrixUnitTest.java
@@ -3,13 +3,19 @@ package com.baeldung.matrices.la4j;
import org.junit.jupiter.api.Test;
import org.la4j.Matrix;
import org.la4j.matrix.dense.Basic2DMatrix;
+import org.openjdk.jmh.annotations.*;
import static org.assertj.core.api.Assertions.assertThat;
-class Basic2DMatrixUnitTest {
+@BenchmarkMode(Mode.AverageTime)
+@Fork(value = 2)
+@Warmup(iterations = 5)
+@Measurement(iterations = 10)
+public class Basic2DMatrixUnitTest {
@Test
- void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
+ @Benchmark
+ public void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
Matrix firstMatrix = new Basic2DMatrix(
new double[][]{
new double[]{1d, 5d},
@@ -37,4 +43,5 @@ class Basic2DMatrixUnitTest {
assertThat(actual).isEqualTo(expected);
}
+
}
diff --git a/libraries-2/src/test/java/com/baeldung/matrices/nd4j/INDArrayUnitTest.java b/libraries-2/src/test/java/com/baeldung/matrices/nd4j/INDArrayUnitTest.java
index 6f3502726c..fb3030bccf 100644
--- a/libraries-2/src/test/java/com/baeldung/matrices/nd4j/INDArrayUnitTest.java
+++ b/libraries-2/src/test/java/com/baeldung/matrices/nd4j/INDArrayUnitTest.java
@@ -3,13 +3,18 @@ package com.baeldung.matrices.nd4j;
import org.junit.jupiter.api.Test;
import org.nd4j.linalg.api.ndarray.INDArray;
import org.nd4j.linalg.factory.Nd4j;
+import org.openjdk.jmh.annotations.*;
import static org.assertj.core.api.Assertions.assertThat;
-class INDArrayUnitTest {
+@BenchmarkMode(Mode.AverageTime)
+@Fork(value = 2)
+@Warmup(iterations = 5)
+@Measurement(iterations = 10)
+public class INDArrayUnitTest {
@Test
- void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
+ public void givenTwoMatrices_whenMultiply_thenMultiplicatedMatrix() {
INDArray firstMatrix = Nd4j.create(
new double[][]{
new double[]{1d, 5d},
@@ -37,4 +42,5 @@ class INDArrayUnitTest {
assertThat(actual).isEqualTo(expected);
}
+
}