java - 如何将/META-INF/BenchmarkList 附加到 jmh 任务以修复 "ERROR: Unable to find the resource:/META-INF/BenchmarkList"

标签 java performance gradle build.gradle jmh

一般来说,我是微观基准测试的新手。当我在我的项目中执行 JMH 任务时,我得到“错误:无法找到资源:/META-INF/BenchmarkList”,我相信是由 jmh-generator-annprocess 创建的。我正在使用 Gradle 并试图弄清楚 jmh-generator-annprocess 是否正常工作?它是否适用于 Gradle,还是我需要使用 Maven 插件或其他东西?

https://github.com/coderrick/JMH-Studies.git 如果您想git clone 我的项目并自己运行。

最佳答案

有几个问题

  1. JMHSample_02_BenchmarkModes 类在错误命名的 java 类中
  2. build.gradle 缺少apply plugin: "me.champeau.gradle.jmh" 声明
  3. jmhJar 部分 Main-Class list 条目被覆盖(这是不必要的)

我做了一个 PR与上述修复。应用它后,您可以使用

运行性能测试
java -jar build/libs/JMH-Studies-jmh.jar

关于java - 如何将/META-INF/BenchmarkList 附加到 jmh 任务以修复 "ERROR: Unable to find the resource:/META-INF/BenchmarkList",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38754665/

相关文章:

Gradle:什么是默认配置以及如何更改它

java - NoClassDefFoundError:使用Gradle创建可运行的* .jar时出现org/slf4j/LoggerFactory

Java 时间延迟

sql - 一张400GB表,一次查询——需要调优思路(SQL2005)

Java Try-Catch 异常计算器

mysql - Laravel 一次更新多条记录

jquery setInterval或滚动

Gradle - 发布工件

Java EE 基础知识

java - 如何使用 Spring JPA 检索某个记录器之前和之后的记录?