Java微基准测试框架JMH的使用

JMH 全称Java Microbenchmark Harness,是专门用于对Java代码进行微基准测试的一套工具API,由OpenJDK开发(即开发Java虚拟机的人开发),能够防止由于Java虚拟机的优化而导致性能测试的不准确

查了下JMH的使用,很多博客都要搞得好复杂,我这个步骤挺简单的
使用Intellij IDEA2018.2 作为集成开发环境,JMH版本为1.21
注意建项目时一定要建立一个maven项目,直接导入jmh-core,jmh-generator-annprocess这两个jar没用,完整的依赖如下:**
maven依赖

<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测试了.
IDEA设置

建立一个如下的工程,即可运行
工程
代码如下:

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(主要)

本文采用 知识共享 署名-非商业性使用-禁止演绎(CC by-nc-nd) 4.0 国际 许可协议 授权

发布了39 篇原创文章 · 获赞 48 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览