我想通过在eclipse中作为Java应用程序运行JMH的新功能。我进口并构建了JMH-shamples项目。编译的类以/jmh-samples/target/target/生成的源/注释结束,/target/中有几个罐子,并运行microbenchs.jar。
但是,当我执行Main时,我总是得到
No matching benchmarks. Miss-spelled regexp?
有什么想法吗?我正在使用0.3
jmh-dev@是与开发人员进行交流的更好方法。
尝试的几件事:
- 劫持
Main
可能不是一个好主意。改用Java API,就像此样本一样。 - 使用
-v extra
调试模式匹配:过滤器REGEXP不正确,或者没有基准可以运行。 - 如果Regexp不正确,请修复它。
- 如果没有基准可以匹配,则没有适当地生成和/或拾取资源的机会。确保
target/classes/
也可以在ClassPath上提供。
好吧,默认情况下,JMH似乎在Meta-Inf/Microbenchs下寻找生成的类,Maven Build将其置于项目的根源下。但是,Eclipse项目的根源不在类路径上,因此在IDE中执行它会导致"未找到基准"。
我让它按照方式运行:
- MVN Clean Package(使用外部Maven安装,未嵌入在Eclipse)
- 右键单击JMH-Samples项目,选择"构建路径 ->用作源文件夹"
- 现在,您可以从JMH-samples中运行任何基准作为Eclipse中的Java应用程序
在缺点的一面
我也面临着同样的问题,我在此处遵循了教程。解决了问题。
以下是我采取的步骤:
我使用了教程AS-I的代码来了解其工作原理。
然后我只是做MVN清洁并安装
- 我看到
target -> annotations -> <package path> -> generated
中创建的所有类别 - 然后我运行了
BenchmarkRunner main()
类,这有效。