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

  • 相关阅读:
    mysql修改数据表名
    HDU 5742 It's All In The Mind (贪心)
    HDU 5752 Sqrt Bo (数论)
    HDU 5753 Permutation Bo (推导 or 打表找规律)
    HDU 5762 Teacher Bo (暴力)
    HDU 5754 Life Winner Bo (博弈)
    CodeForces 455C Civilization (并查集+树的直径)
    CodeForces 455B A Lot of Games (博弈论)
    CodeForces 455A Boredom (DP)
    HDU 4861 Couple doubi (数论 or 打表找规律)
  • 原文地址:https://www.cnblogs.com/beanbag/p/12586256.html
Copyright © 2011-2022 走看看