我想通过在eclipse中将其作为Java Application运行来试用JMH的新功能。我导入并构建了jmh-samples项目。编译后的类以/ jmh-samples / target / generated-sources / annotations结尾,/ target /中有几个JAR,并且从命令行运行microbenchmarks.jar像往常一样工作。
然而,当我执行main时,我总是得到
No matching benchmarks. Miss-spelled regexp?
有什么想法吗?我使用的是0.3版
答案 0 :(得分:3)
jmh-dev@是与开发人员进行沟通的更好方式。
很少有尝试:
Main
可能不是一个好主意。请改用Java API,like this sample。-v extra
调试模式匹配:过滤器正则表达式不正确,或者没有运行基准测试。target/classes/
。答案 1 :(得分:3)
好吧,看起来默认情况下jmh会在META-INF / Microbenchmarks下查找生成的类,maven build会置于项目的根目录下。但是,eclipse项目的根不在类路径上,因此在IDE中执行它会导致“找不到基准”。
我按照以下方式运行:
在缺点方面,你会在问题视图中看到1000多个“错误”,因为eclipse与自动生成的文件混淆了,但是哦,好吧,至少它是有效的。
答案 2 :(得分:1)
我也遇到了同样的问题,因此我遵循了教程here。那解决了这个问题。
以下是我采取的步骤:
我使用code from the tutorial AS-IS来了解其工作原理。
然后我只是将mvn清理并安装
target -> annotations -> <package path> -> generated
中创建的所有类集BenchmarkRunner main()
类,并且这个方法起作用了。