当前位置: 首页 > 知识库问答 >
问题:

在eclipse中从main运行JMH时“没有匹配的基准”

酆恩
2023-03-14

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

然而,当我执行main时,我总是得到

No matching benchmarks. Miss-spelled regexp?

有什么想法吗?我使用的是 0.3 版

共有3个答案

长孙沈义
2023-03-14

我也面临着同样的问题,我遵循这里的教程。这解决了问题。

以下是我采取的步骤:

> < li>

我按原样使用了教程中的代码,以了解它的工作原理。

然后我就做了mvn清理安装

夹谷鸿福
2023-03-14

好的,默认情况下,jmh在META-INF/Microbenchmarks下查找生成的类,maven构建将其放在项目的根目录下。然而,eclipse项目的根不在类路径上,所以在IDE中执行它会导致“找不到基准”。

我按以下方式运行:

  1. mvn 清洁包(使用外部专家安装,不嵌入日食)
  2. 右键单击 jmh 示例项目,选择“构建路径 -

不利的一面是,您在“问题”视图中会得到1000个“错误”,因为eclipse与自动生成的文件混淆,但是哦,好吧,至少它有效。

杨飞语
2023-03-14

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

可以尝试的几件事:

  1. 劫持Main可能不是一个好主意。改用JavaAPI,就像这个例子一样。
  2. 使用-v额外调试模式匹配:要么过滤器正则表达式不正确,要么没有要运行的基准测试。
  3. 如果正则表达式不正确,请修复它。
  4. 如果没有要匹配的基准测试,则可能没有正确生成和/或获取资源。确保目标/类/在类路径上也可用。
 类似资料:
  • 问题内容: 我想通过在Eclipse中将其作为Java应用程序运行来尝试JMH的新功能。我导入并构建了jmh-samples项目。编译的类以/ jmh-samples / target / generated-sources / annotation结尾,/ target /中有多个JAR,并且像往常一样从命令行运行microbenchmarks.jar。 但是,当我执行main时,我总是得到 有

  • 我有几个用@Benchmark注释的大型基准类。在使用基准构建jar后,我可以使用以下命令运行所有这些类 如果我不想运行所有基准测试,如何指定要运行的基准测试?

  • 我想开始看看JMH,由于某些原因,我无法运行基准测试。让我解释一下我尝试过什么: 下载了一些官方的JMH示例。作为例子,我选择了非常简单,是一个很好的起点:http://hg.openjdk.java.net/code-tools/jmh/file/0c58dc4fcf17/jmh-samples/src/main/java/org/openjdk/jmh/samples/JMHSample_01

  • 有一个错误,JMH没有让我的类达到基准。 其中EventRunner包含: 我得到一个错误: 不包括:org。样品我的基准。testMethod,与com不匹配。斯特库拉。基准策略EventRunner没有匹配的基准。拼写为regexp的小姐?使用-v表示详细的输出。 如何将正则表达式更改为有效? 谢谢

  • 我正在尝试编译并运行以下程序,而不使用中的函数。我使用以下命令编译了程序。 编译器发出警告 好的,没问题。然后,我已经运行了可执行文件(a.out),两个< code>printf语句都打印成功,然后得到分段错误。 所以,我的问题是,为什么成功执行打印语句后会出现分段错误? 我的代码: 输出: 注意: 在这里, gcc 标志阻止编译器在链接时使用标准启动文件

  • 我有一个Groovy和Gradle项目在Eclipse开普勒有几个类和一个Spock规范。我可以从shell运行Gradle构建,它工作正常,包括Spock规范。 我现在想尝试在Eclipse中运行Spock规范,无论是否在调试器中。当我运行它时,我看到以下内容: 这是我构建的“依赖项”块。格雷德尔: 我可以在Project Explorer中看到我的Gradle依赖项具有groovy-all-2