zoukankan      html  css  js  c++  java
  • JMH基本概念和配置

    JMH基本概念和配置

    1、模式(Mode)

    Mode表示JMH的测量方式和角度,共有四种。

    • Throughput:整体吞吐量,表示1秒内可以执行多少次调用。
    • AverageTime:调用的平均时间,表示每一次调用所需要的时间。
    • SampleTime:随机取样,最后输出随机取样结果的分布。
    • SingleShotTime:以上模式都是默认一次Iteration是一秒,唯有SingleShotTime只运行一次。往往同时把warmup设置为0,用于测试程序的冷启动性能。

    2、迭代(Iteration)

    迭代是JMH的一次测量单位。在大部分测试模式下,一次迭代表示1秒,在这1秒内会不间断的调用被测方法,并采样计算吞吐量、平均时间等。

    3、预热(Warmup)

    由于Java虚拟机JIt的存在,同一个方法在JIT编译前后的时间将会不同。通常只考虑方法在JIt编译之后的性能。

    4、状态(State)

    通过State可以指定一个对象的作用范围。范围主要有两种,一种为线程范围,也就是一个对象只会被一个线程访问。在多线程进行测试时,会为每一个线程生成一个对象。另一种是基准测试范围(BenchMark),即多个线程共享一个实例。

    5、配置类

    Options opt = new OptionsBuilder().include(TestMap_JMH.class.getSimpleName())
                    .forks(2).build();
            try {
                new Runner(opt).run();
            } catch (RunnerException e) {
                e.printStackTrace();
            }
    首先对测试进行配置,需要指定一些参数,比如指定测试类(include)、使用的进程个数(forks)、预热迭代次数(warmupForks),在配置启动测试时,
    需要使用配置类。

  • 相关阅读:
    【USACO】又买饲料 单调队列dp
    数论:px+py 不能表示的最大数为pq-p-q的证明
    codeforces round #419 E. Karen and Supermarket
    [USACO4.1]麦香牛块Beef McNuggets
    【USACO】 录制唱片
    【USACO】 洞穴奶牛
    【USACO】奶牛抗议 树状数组+dp
    【USACO】 奶牛会展
    【LSGDOJ 2015】数页码
    阿里云合作伙伴峰会SaaS加速器专场 | 商业加持,迈进亿元俱乐部
  • 原文地址:https://www.cnblogs.com/beanbag/p/12586256.html
Copyright © 2011-2022 走看看