DolphinSchedulerMicroBench 微基准测试

    MicroBench模块是基于OpenJDK JMH构件的(HotSpot的推荐基准测试方案)。当你开始基准测试时,你不需要额外的依赖。

    JMH,即Java MicroBenchmark Harness,是专门用于代码微基准测试的工具套件。何谓Micro Benchmark呢?简单的来说就是基于方法层面的基准测试,精度可以达到微秒级。当你定位到热点方法,希望进一步优化方法性能的时候,就可以使用JMH对优化的结果进行量化的分析。

    Java基准测试需要注意的几个点:
    • 防止无用代码进入测试方法中。

    • 测试结果呈现。

    JMH比较典型的应用场景有:
    • 1:定量分析某个热点函数的优化效果

    • 3:对比一个函数的多种实现方式

    DolphinScheduler-MicroBench提供了AbstractBaseBenchmark,你可以在其基础上继承,编写你的基准测试代码,AbstractMicroBenchmark能保证以JUnit的方式运行。

    定制运行参数

    默认的AbstractMicrobenchmark配置是

    Warmup次数 10(warmupIterations)

    测试次数 10(measureIterations)

    Fork数量 2 (forkCount)

    DolphinScheduler-MicroBench 介绍

    通常并不建议跑测试时,用较少的循环次数,但是较少的次数有助于确认基准测试时工作的,在确认结束后,再运行大量的基准测试。

    这可以以方法级别或者类级别来运行基准测试,命令行的参数会覆盖annotation上的参数。

    当你的基准测试编写完成后,你可以运行它查看具体的测试情况:(实际结果取决于你的系统配置情况)

    首先它会对我们的代码进行预热,

    在经过预热后,我们通常会得到如下结果

    OpenJDK官方给了很多样例代码,有兴趣的同学可以自己查询并学习JMH:OpenJDK-JMH-Example