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没用,完整的依赖如下:**
Java微基准测试框架JMH的使用_第1张图片


        
            org.openjdk.jmh
            jmh-core
            1.21
        
        
            org.openjdk.jmh
            jmh-generator-annprocess
            1.21
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.7.0
                
                    1.8
                    1.8
                
            
        
    

仅仅这个还不足以运行,在Setting->Build,ExecutionDeployment->Compiler->Annotation Processors里开启Enable annotation processing 后即可运行JMH测试了.
Java微基准测试框架JMH的使用_第2张图片

建立一个如下的工程,即可运行
Java微基准测试框架JMH的使用_第3张图片
代码如下:

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 国际 许可协议 授权

你可能感兴趣的:(Java)