JMH

JMH

JMH是用于构建,运行和分析用Java和其他语言编写的面向JVM的nano / micro / milli / macro基准测
试的Java代码库。

前言

为什么会突然想起来写这个呢?之前确实用过这个,不过基本上都是只是知道而已,没有真正的使用这个工具去对比什么内容,最近看占老板突然更新一篇博客,用到了这个,就趁机学习一下,哈哈! 跟着大牛果然提升快!

一个例子

比较三种时间工具类的性能


import org.joda.time.DateTime;
import org.openjdk.jmh.annotations.*;

import java.util.Calendar;
import java.util.concurrent.TimeUnit;

/**
 * Created by gongyan on 2018/6/11.
 */
@OutputTimeUnit(TimeUnit.NANOSECONDS)
@BenchmarkMode(Mode.AverageTime)
@Fork(value = 2)
public class DateTimeBenchmarkTest {

    @Benchmark
    @Threads(10)
    public void runCalender() {
        Calendar calendar = Calendar.getInstance();
    }

    @Benchmark
    @Threads(10)
    public void runJoda() {
        DateTime dateTime = DateTime.now();
    }

    @Benchmark
    @Threads(10)
    public void runSystem() {
        long result = System.currentTimeMillis();
    }
}

效果评估

JMH_第1张图片
JMH效果评估

可以看到,Joda的效果已经快赶上了System的,而Calender的耗时居然是Joda的7倍!

官网传送门

http://openjdk.java.net/projects/code-tools/jmh/

Idea插件

在Idea里面运行 尽量还是使用插件直接运行,基于注解进行配置

https://github.com/artyushov/idea-jmh-plugin

你可能感兴趣的:(JMH)