【发布时间】:2020-08-12 14:45:42
【问题描述】:
我目前正在使用插件对 Java 代码运行基准测试,我使用 jmh-gradle-plugin 来执行此操作。
该插件允许使用 jmh 代码块方便地描述 JMH 配置:
jmh {
include = ["List"]
benchmarkParameters=["seed": ["1", "2", "3", "4", "5"],
"applicationSize":["100", "1000"],
"baseStructureSize":["100", "1000"]]
fork=2
timeOnIteration="250ms"
iterations=2
warmup="250ms"
warmupIterations=2
fork=2
resultFormat="CSV"
benchmarkMode=["ss"]
timeUnit="ms"
failOnError = true
}
这很有用,但我希望有不同类型的相同任务,例如,一种输出为 CSV,一种输出为 JSON。我知道这可以使用resultFormat=<format> 进行配置,但我找不到“复制”任务并为每个变体提供不同配置的方法。
Gradle documentation has a page 关于配置任务,但是他们配置了一个Copy 任务。我想我可以按照类似的方法写:
task myJMH(type: me.champeau.gradle.JMHTask) {
resultFormat="JSON"
}
但是方法不起作用,正如我在this issue 中提到的那样。我认为这可能是 JMH 的任务不同。注册一个具有该名称的类是可行的,但无法配置它。我收到以下错误:
Could not set unknown property 'include' for task ':myJMH' of type me.champeau.gradle.JMHTask.
同样,我想要shadowJar 任务的各种配置,以便能够生成任务的多个不同变体,但我遇到了同样的问题。
【问题讨论】: