OpenJDK 的JMH(Java Microbenchmark Harness)应该可以满足您的需求:
JMH 是一个 Java 工具,用于构建、运行和分析以 Java 和其他针对 JVM 的语言编写的 nano/micro/milli/macro 基准。
运行 JMH 基准测试的推荐方法是使用 Maven 设置依赖于应用程序的 jar 文件的独立项目。这种方法是首选,以确保正确初始化基准并产生可靠的结果。可以在现有项目中运行基准测试,甚至可以从 IDE 中运行,但是设置更复杂,结果也不太可靠。
这是使用 JMH 进行基准测试的简单方法:
- 使用原型jmh-java-benchmark-archetype创建一个 Maven 项目
- 在 Eclipse 中编辑该项目以创建您想要进行基准测试的代码,并构建一个 jar 文件。
- 从终端/命令提示符执行您的 jar 文件。JMH 会做它的事,并展示它的结果。
为了给你一个更好的主意,这里有一些简单的带注释的代码来将数据加载到 HashMap 中:
import java.util.HashMap;
import java.util.concurrent.TimeUnit;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
public class MyBenchmark {
@Benchmark
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.MILLISECONDS)
public void testMethod() {
HashMap<Integer, String> map = new HashMap<>();
for (int i = 0; i < 1000; i++) {
map.put(i, "" + i);
}
}
}
这就是使用 JMH 所需的所有代码,并且类和方法已经由 Maven 创建;我只是提供了注解和四行 Java。
当然,从 JMH 获取有用信息远不止这些,但如果您遵循众多在线教程之一,您应该能够在大约 15 分钟内启动并运行一些东西。Openjdk 还提供了 38 个代码示例。