0

我想使用 JMH 和 sbt-jmh 插件用不同的 JVM 版本测试相同的代码。我想要实现的是能够在 sbt shell Corretto11 / Jmh / run(或类似的东西)中运行一个命令,该命令将使用 Amazon Corretto 11 JVM(或任何其他定义的)进行我的 JMH 测试。

这是我到目前为止在我的 sbt 配置中的内容:

import pl.project13.scala.sbt.JmhPlugin.JmhKeys.Jmh

lazy val Corretto11 = config("corretto11") extend Jmh
lazy val Zulu11 = config("zulu11") extend Jmh

lazy val myProject = project
  .enablePlugins(JmhPlugin)
  .configs(Corretto11, Zulu11)
  .settings(
    scalaVersion := "2.13.7",
    fork := true,
    Corretto11 / javaHome := Some(file("path/to/corretto-11.0.14")),
    Zulu11 / javaHome := Some(file("path/to/azul-11.0.14"))
  )

这个配置允许我用来Corretto11 / run运行 JMH 测试,但它仍然使用用于启动 sbt 的 Java,而不是通过Corretto11 / javaHome. 仅指定javaHome没有Corretto11 /按预期工作和运行Jmh / run使用正确的 JVM 来编译和运行应用程序。尽管每次尝试运行基准测试时,我都不想手动更改它。我也不想sbt -java-home ...为每个基准测试运行命令。

4

0 回答 0