diff --git a/libraries/pom.xml b/libraries/pom.xml
index 6e96eab28f..653f21d1f6 100644
--- a/libraries/pom.xml
+++ b/libraries/pom.xml
@@ -308,6 +308,16 @@
jool
0.9.12
+
+ org.openjdk.jmh
+ jmh-core
+ 1.19
+
+
+ org.openjdk.jmh
+ jmh-generator-annprocess
+ 1.19
+
io.netty
netty-all
diff --git a/libraries/src/main/java/com/baeldung/jmh/BenchMark.java b/libraries/src/main/java/com/baeldung/jmh/BenchMark.java
new file mode 100644
index 0000000000..bc0c348556
--- /dev/null
+++ b/libraries/src/main/java/com/baeldung/jmh/BenchMark.java
@@ -0,0 +1,12 @@
+package com.baeldung.jmh;
+
+import org.openjdk.jmh.annotations.Benchmark;
+
+public class BenchMark {
+
+ @Benchmark
+ public void init() {
+
+ }
+
+}
diff --git a/libraries/src/main/java/com/baeldung/jmh/JmhDemo.java b/libraries/src/main/java/com/baeldung/jmh/JmhDemo.java
new file mode 100644
index 0000000000..bcd585e586
--- /dev/null
+++ b/libraries/src/main/java/com/baeldung/jmh/JmhDemo.java
@@ -0,0 +1,14 @@
+package com.baeldung.jmh;
+
+import java.io.IOException;
+
+import org.openjdk.jmh.Main;
+import org.openjdk.jmh.runner.RunnerException;
+
+public class JmhDemo {
+
+ public static void main(String[] args) throws RunnerException, IOException {
+ Main.main(args);
+ }
+
+}
diff --git a/libraries/src/main/resources/META-INF/BenchmarkList b/libraries/src/main/resources/META-INF/BenchmarkList
new file mode 100644
index 0000000000..e69de29bb2