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

JMH没有把班级提升到基准

闻人伟
2023-03-14

有一个错误,JMH没有让我的类达到基准。

package com.stecurran.jmh.entry;

import org.openjdk.jmh.Main;

public class JmhRunner {

    private static final String TEST = "com.stecurra.benchmark.strategy.EventRunner";

    public static void main(String[] args) {

        Main.main(getArguments(TEST, 5, 5000, 1));
    }

    private static String[] getArguments(String className, int nRuns, int runForMilliseconds, int nThreads) {
        return new String[] { className, "-i", "" + nRuns, "-r", runForMilliseconds + "ms", "-t", "" + nThreads, "-w", "5000ms", "-wi", "3", "-v" };
    }

}

其中EventRunner包含:

    package com.stecurra.benchmark.strategy;

import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.GenerateMicroBenchmark;
import org.openjdk.jmh.annotations.Mode;



@BenchmarkMode(Mode.AverageTime)
public class EventRunner {

    @GenerateMicroBenchmark
    public void runTest(){

        TimeStore.start = System.nanoTime();


        // FacebookRetriever fbCal = FacebookRetriever.getInstance();
        GoogleRetriever gCal = GoogleRetriever.getInstance();

        CalendarService cs = new CalendarService(gCal);

        for (SimpleEvent simpleEvent : cs.getEvents()) {
            System.out.println(simpleEvent);
        }

        TimeStore.end = System.nanoTime();

        System.out.println(TimeStore.getTime());        

    }

}

我得到一个错误:

不包括:org。样品我的基准。testMethod,与com不匹配。斯特库拉。基准策略EventRunner没有匹配的基准。拼写为regexp的小姐?使用-v表示详细的输出。

如何将正则表达式更改为有效?

谢谢

共有1个答案

赵智勇
2023-03-14

确保您实际编译了项目,让JMH注释处理器运行并为您生成基准列表。从您那里的消息来看,EventRunner.test显然没有进入基准列表。

在我们讨论这个问题时,还有其他的花絮:

  1. 劫持JMH Main可能是运行基准测试的简单方法,但对于这样的用例,我们有更好的Java API
  2. 测量时间,尤其是打印出@GenerateMicroBenchmark方法的内部时间,可能不是你想要的。相反,您需要让JMH为您进行计时测量。参见相关JMH样本
  3. 消除打印输出后,需要将得到的值输入黑洞,这是相关的JMH示例
 类似资料:
  • 升级指南 了解如何应用程序升级到最新版的PhoneGap。 PhoneGap的Andr​​oid升级 升级PhoneGap黑莓 PhoneGap升级IOS PhoneGap的Windows Phone升级 Windows 8的升级PhoneGap

  • 有没有办法 把这个 开头的升级购买提醒给删掉? https://medium.com/ 没找到油猴脚本. js getElment 没有好的思路

  • 配置项目:app app:'annotationProczer'依赖项不会被识别为kapt注释处理器。请将这些工件的配置名称更改为'kapt':'com.github.bumptech.glide: compiler: 4.12.0'。 失败:构建失败,出现异常。 > < li> 哪里出错:根项目“DemoApp”中的任务“package”不明确。候选项为:“packageDebug”、“pack

  • 问题内容: 我目前正在将H2O用于分类问题数据集。我正在python 3.6环境中对其进行测试。我注意到预测方法的结果是给出0到1之间的值(我假设这是概率)。 在我的数据集中,目标属性是数字,即值是1且值是0。我确保将类型转换为目标属性的类别,但仍得到相同的结果。 然后我修改了代码,仍然使用H2OFrame上的方法将目标列转换为因数,结果没有任何变化。 但是,当我分别将target属性中的值分别更

  • Win7-64,Python 3.6。将tensorflow升级到1.8后,如下文本 给出错误: Traceback(最近一次调用最后一次):File"C:\Program Files\Python36\lib\site-pack\tenorflow\python\pywrap_tensorflow_internal.py",第14行,swig_import_helper返回importlib.i

  • 问题内容: 我想通过在Eclipse中将其作为Java应用程序运行来尝试JMH的新功能。我导入并构建了jmh-samples项目。编译的类以/ jmh-samples / target / generated-sources / annotation结尾,/ target /中有多个JAR,并且像往常一样从命令行运行microbenchmarks.jar。 但是,当我执行main时,我总是得到 有