JMH 全称Java Microbenchmark Harness,是专门用于对Java代码进行微基准测试的一套工具API,由OpenJDK开发(即开发Java虚拟机的人开发),能够防止由于Java虚拟机的优化而导致性能测试的不准确
查了下JMH的使用,很多博客都要搞得好复杂,我这个步骤挺简单的
使用Intellij IDEA2018.2 作为集成开发环境,JMH版本为1.21
注意建项目时一定要建立一个maven项目,直接导入jmh-core,jmh-generator-annprocess这两个jar没用,完整的依赖如下:**
<dependencies>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.21</version>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.21</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
仅仅这个还不足以运行,在Setting->Build,ExecutionDeployment->Compiler->Annotation Processors里开启Enable annotation processing 后即可运行JMH测试了.
建立一个如下的工程,即可运行
代码如下:
package first;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.runner.Runner;
import org.openjdk.jmh.runner.RunnerException;
import org.openjdk.jmh.runner.options.Options;
import org.openjdk.jmh.runner.options.OptionsBuilder;
import java.util.HashMap;
import java.util.Map;
public class Hello {
@Benchmark
public void testMethod() {
Map<String, String> map = new HashMap<>();
map.put("a", "b");
}
public static void main(String[] args) {
final Options build = new OptionsBuilder().include(Hello.class.getSimpleName()).forks(1).build();
try {
new Runner(build).run();
} catch (RunnerException e) {
e.printStackTrace();
}
}
}
欢迎访问我的 个人网站(主要), Github, CSDN(主要), 博客园, 简书, 掘金, 知乎, 微信公众号:HelloVant(主要)