运行 来自 jar 的特定 JMH 基准

Run specific JMH benchmarks from jar

我有几个用@Benchmark 注释的重基准测试类。在使用基准构建 jar 后,我可以 运行 所有这些都使用以下命令

java -Xmx4G -jar benchmarks.jar -f 1 -wi 3 -i 10

如果我不想 运行 所有这些,如何指定 运行 的基准?

如有疑问,请寻求命令行帮助。事实上,运行 带有 -h 的 JAR 产生:

Usage: java -jar ... [regexp*] [options]
 [opt] means optional argument.
 <opt> means required argument.
 "+" means comma-separated list of values.
 "time" arguments accept time suffixes, like "100ms".

  [arguments]                 Benchmarks to run (regexp+). 

因此,提供一个正则表达式作为过滤器会有所帮助。

这是确切的命令:

java -Xmx4G -jar benchmarks.jar YourClass -f 1 -wi 3 -i 10

扩展 Aleksey 的回答,对测试 class 名称使用正则表达式过滤器。

java -jar myJmh.jar -f 1 -wi 1 -w 10 -i 5 "JwtParseBenchmark"
java -jar myJmh.jar -f 1 -wi 1 -w 10 -i 5 "JwtClaimBenchmark"

and/or 运行 多次使用 例如

java -jar myJmh.jar -f 1 -wi 1 -w 10 -i 5 "Jwt.*Benchmark"