加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – JMH没有拿起类来进行基准测试

发布时间:2020-12-15 04:16:08 所属栏目:Java 来源:网络整理
导读:有一个错误,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[]
有一个错误,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.sample.MyBenchmark.testMethod,与com.stecurra.benchmark.strategy.EventRunner不匹配
没有匹配的基准.拼写错误的正则表达式?使用-v表示详细输出.

如何更改我的正则表达式有效?

谢谢

解决方法

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

我们在这里,其他花絮:

>劫持JMH Main可能是运行基准测试的简单方法,但是对于这样的用例我们有更好的Java API.
>测量时间,特别是打印@GenerateMicroBenchmark方法的内部时间可能不是你想要的.相反,您需要让JMH为您进行定时测量.参见例如relevant JMH sample.
>在消除打印输出后,您需要将输入的值输入到黑洞中,this the relevant JMH sample.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读