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),在配置启动测试时,
    需要使用配置类。

  • 相关阅读:
    梯度下降算法 (转)
    机器学习
    杭电1097-A hard puzzle
    动态规划初步习题(紫书)
    4.21考试题解
    【bzoj4445 scoi2015】小凸想跑步
    【bzoj4444 scoi2015】国旗计划
    【bzoj4443 scoi2015】小凸玩矩阵
    【luogu P4007 清华集训2017】小Y和恐怖奴隶主
    【luoguP4006 清华集训2017】小Y和二叉树
  • 原文地址:https://www.cnblogs.com/beanbag/p/12586256.html
Copyright © 2011-2022 走看看