"No matching benchmarks"在日食中从主运行 JMH 时



我想通过在eclipse中作为Java应用程序运行JMH的新功能。我进口并构建了JMH-shamples项目。编译的类以/jmh-samples/target/target/生成的源/注释结束,/target/中有几个罐子,并运行microbenchs.jar。

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

No matching benchmarks. Miss-spelled regexp?

有什么想法吗?我正在使用0.3

版本

jmh-dev@是与开发人员进行交流的更好方法。

尝试的几件事:

  1. 劫持Main可能不是一个好主意。改用Java API,就像此样本一样。
  2. 使用-v extra调试模式匹配:过滤器REGEXP不正确,或者没有基准可以运行。
  3. 如果Regexp不正确,请修复它。
  4. 如果没有基准可以匹配,则没有适当地生成和/或拾取资源的机会。确保target/classes/也可以在ClassPath上提供。

好吧,默认情况下,JMH似乎在Meta-Inf/Microbenchs下寻找生成的类,Maven Build将其置于项目的根源下。但是,Eclipse项目的根源不在类路径上,因此在IDE中执行它会导致"未找到基准"。

我让它按照方式运行:

  1. MVN Clean Package(使用外部Maven安装,未嵌入在Eclipse)
  2. 右键单击JMH-Samples项目,选择"构建路径 ->用作源文件夹"
  3. 现在,您可以从JMH-samples中运行任何基准作为Eclipse中的Java应用程序

在缺点的一面

我也面临着同样的问题,我在此处遵循了教程。解决了问题。

以下是我采取的步骤:

  • 我使用了教程AS-I的代码来了解其工作原理。

  • 然后我只是做MVN清洁并安装

  • 我看到target -> annotations -> <package path> -> generated中创建的所有类别
  • 然后我运行了BenchmarkRunner main()类,这有效。

最新更新