从日食中的主要运行JMH时“没有匹配的基准”

我想通过在eclipse中将其作为Java Application运行来试用JMH的新function。 我导入并构建了jmh-samples项目。 编译的类以/ jmh-samples / target / generated-sources / annotations结束,/ target /中有几个JAR,并且从命令行运行microbenchmarks.jar像往常一样工作。

但是,当我执行main时,我总是得到

No matching benchmarks. Miss-spelled regexp? 

有任何想法吗? 我使用的是0.3版

jmh-dev @是与开发人员沟通的更好方法。

几件事情要尝试:

  1. 劫持Main可能不是一个好主意。 请使用Java API, 例如此示例 。
  2. 使用-v extra来调试模式匹配:filterregexp不正确,或者没有运行基准测试。
  3. 如果正则表达式不正确,请修复它。
  4. 如果没有可匹配的基准测试,则可能无法正确生成和/或拾取资源。 确保classpath上也可以使用target/classes/

好吧,所以看起来默认情况下jmh在META-INF / Microbenchmarks下查找生成的类,maven build放在项目的根目录下。 但是,eclipse项目的根目录不在类路径上,因此在IDE中执行它会导致“找不到基准”。

我按照以下方式运行:

  1. mvn clean package(使用外部maven安装,不嵌入eclipse)
  2. 右键单击jmh-samples项目,选择“Build Path – > Use as a source folder”
  3. 您现在可以在jclipse中运行jmh-samples中的任何基准测试作为Java Application

在缺点方面,你会在问题视图中看到1000多个“错误”,因为eclipse会与自动生成的文件混淆,但哦,好吧,至少它是有效的。