【Code Tools】Java微基准测试工具JMH之入门篇

1、JMH是什么java

  JMH是一个Java工具,用于构建、运行和分析用Java和其余语言编写的以JVM为目标的 nano/micro/milli/macro 基准测试。

maven

2、基本注意事项工具

1)运行JMH基准测试的推荐方法是使用Maven设置一个独立的项目,该项目依赖于应用程序的jar文件。这种方法是首选的,以确保基准被正确初始化并产生可靠的结果。测试

2)咱们也能够在现有项目中运行基准测试,甚至能够在IDE中运行基准测试,可是设置更加复杂,结果也不那么可靠。
3)在全部状况下,使用JMH的关键是使注释或字节码处理器可以生成合成的基准代码。Maven archetypes(原型)是用于启用此功能的主要机制。咱们强烈建议新用户使用archetype设置正确的环境。

3、经过Command Line(命令行)来建立JMH测试项目
1)创建基准测试项目ui

执行下面的maven命令将生成一个新的JMH-driven项目spa

$ mvn archetype:generate \ -DinteractiveMode=false \ -DarchetypeGroupId=org.openjdk.jmh \ -DarchetypeArtifactId=jmh-java-benchmark-archetype \ -DgroupId=org.sample \ -DartifactId=test \ -Dversion=1.0

2)Building项目命令行

$ cd test/ $ mvn clean install

3)运行该项目code

java -jar target/benchmarks.jar

使用-h运行,查看可用的命令行选项。blog

java -jar target/benchmarks.jar -h

该项目目前没有任何测试代码,但能够看到运行效果,代码以下rem

public class MyBenchmark { public MyBenchmark() { } @Benchmark public void testMethod() {
    //此处添加测试代码 } }

运行结果以下:

➜  test java -jar target/benchmarks.jar # VM invoker: /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/bin/java # VM options: <none> # Warmup: 20 iterations, 1 s each # Measurement: 20 iterations, 1 s each # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: org.sample.MyBenchmark.testMethod # Run progress: 0.00% complete, ETA 00:06:40 # Fork: 1 of 10 # Warmup Iteration 1: 3019163919.102 ops/s # Warmup Iteration 2: 3040718111.236 ops/s # Warmup Iteration 3: 3052170687.842 ops/s # Warmup Iteration 4: 3063995970.025 ops/s

 

 

注:在处理大型项目时,一般将基准保存在单独的子项目中,而后经过一般的构建依赖关系依赖于测试的模块。

相关文章
相关标签/搜索