跳至主要内容

博文

目前显示的是 十月, 2020的博文

使用JMH对Java应用进行微基准测试

Welcome file 简介 JMH(Java Microbenchmark Harness)是一个帮助开发者更好的实现微基准测试(microbenchmark)的工具,属于OpenJDK项目的一部分。虽然名字叫微基准测试工具,但JMH也可以适用于其他类型的基准测试,对较大型项目的基准测试同样也有帮助。 为什么需要用JMH来做基准测试 由于JVM会对代码做各种优化,而自己写的基准测试很难考虑到各方面的优化,这样会导致测试的结果可能跟线上的相差较大。JMH本身虽然不能完全消除这些优化的影响,但是它能帮助减轻这方面的影响。 本文使用环境:Java 8 使用Maven构建运行JMH 使用Maven构建运行JMH是被OpenJDK团队推荐的使用方式,因为该方式能产生更加可靠的结果。 使用Maven创建新项目 使用该命令可以创建一个基于Maven的JMH模板项目: mvn archetype:generate -DinteractiveMode=false -DarchetypeGroupId=org.openjdk.jmh -DarchetypeArtifactId=jmh-java-benchmark-archetype -DarchetypeVersion=1.25.2 -DgroupId=com.nereusyi.demos -DartifactId=jmh-template -Dversion=1.0 官方示例的命令行参数中,没有-DarchetypeVersion=1.25.2这行,那样默认会生成较老版本的模板项目,需要较多改动才能适配新版本的Java,所以最好加上该参数。也可以在maven仓库上查看JMH的最新版本并替换 部分输出如下: [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Archetype: jmh-java-benchmark-archetype:1.25.2 [INFO] ------------------