当前位置: 首页 > 网络应用技术

Java微发现测试工具JMH

时间:2023-03-07 23:06:25 网络应用技术

  JMH的全名是Java Microbench Marks线束。这是由Java虚拟机团队开发的Java微型发现测试工具。简单地说,它是测试接口性能的测试工具。

  PS:第一次,我遵循了这一点,它在弹簧框架框架中很有用

  github地址:https://github.com/openjdk/jmh

  Java的基准测试需要注意:

  JMH的典型场景:

  引入Maven依赖

  增加包装工具:

  测试代码:

  执行Maven命令:

  4.1 @benchmarkmode参考测试类型,您可以有几个选项:

  4.2预热需要在基准测试之前预热。为什么需要热身?因为JVM的JIT机制已经存在。如果函数被称为多次,JVM将尝试将其编译为机器代码以提高执行速度。

  4.3通过@Measurement测量的一些基本参数:

  4.4 @Threads测试线程在每个过程中,通常CPU核编号*2

  4.5 @fork对于叉数。如果数字叉为2,JMH将形成两个用于测试的过程

  4.6 @OutputTimeUnit测试结果。加生选择秒,毫秒,微秒

  4.7 @benchmark意味着该方法需要用于执行基准的对象,这类似于Junit的@teest

  4.8 @param @param可用于指定某个参数的多种情况。它特别适合在不同参数输入下测试功能的性能。例如

  4.9 @setup评论的角色是,我们需要在测试之前准备一些准备工作,例如某些数据的初始化。这也是Junit的@beface

  4.10 @Teardown测试后执行一些结局,主要用于资源恢复

  4.11@statestate用于声明某个类是“状态”,然后接受范围参数来表示状态范围。由于许多基准需要一些表明状态的类,JMH允许您注入这些类以依赖方式进入基准函数。Scope主要分为三种类型。

  提示:例如

  生成数据后,可以将JMH存储在文件中,然后可以通过在Internet上提供的Visual网站上传在Internet上提供的测试数据来可视化。

  上面的代码上传到视觉可视化的图:

  参考文档: