博客
关于我
Oracle官方推荐的性能测试工具!简单、精准又直观!
阅读量:797 次
发布时间:2023-02-25

本文共 3175 字,大约阅读时间需要 10 分钟。

JMH ?????? Java ??????????? Java ???????? Oracle ?????? JIT???????? JVM?Java ???????????????????????

?????????? JMH ?? StringBuilder.append() ???????????????????

1. ????

????????? JMH ???????? Maven ????????????? JMH ????????????????

org.openjdk.jmh
jmh-core
1.23
org.openjdk.jmh
jmh-generator-annprocess
1.23

2. ?????

???????????? Java ? StringConnectTest?????????????????????????

public class StringConnectTest {    @Param(value = {"10", "50", "100"})    private int length;    @Benchmark    public void testStringBuilderAdd(Blackhole blackhole) {        StringBuilder sb = new StringBuilder();        for (int i = 0; i < length; i++) {            sb.append(i);        }        blackhole.consume(sb.toString());    }    @Benchmark    public void testStringAdd(Blackhole blackhole) {        String a = "";        for (int i = 0; i < length; i++) {            a += i;        }        blackhole.consume(a);    }    public static void main(String[] args) throws RunnerException {        Options opt = new OptionsBuilder()                .include(StringConnectTest.class.getSimpleName())                .result("result.json")                .resultFormat(ResultFormatType.JSON)                .build();        new Runner(opt).run();    }}

3. ??????

? main ???????? OptionsBuilder ?????????????????????

public static void main(String[] args) throws RunnerException {    Options opt = new OptionsBuilder()            .include(StringConnectTest.class.getSimpleName())            .result("result.json")            .resultFormat(ResultFormatType.JSON)            .build();    new Runner(opt).run();}

4. ??????

?? Maven ???????????????????????

mvn clean install -Djmh_demo=true StringConnectTest

5. ??????

????????????? JSON ??????? result.json??????????????????????????????????????

6. ??????

??????????????? StringBuilder.append() ???? String ????????????????????

???? ?? ?? ?? ???? (ns/op) ???
testStringBuilderAdd 100 avgt 5 819.329 0.00%
testStringAdd 100 avgt 5 6490.062 0.00%

???????????????? StringBuilder.append() ????????

7. ?? JMH ???

JMH ??????????????????????????????????????????????

  • @Benchmark ??????????????
  • @Param ????????????
  • @State ????????????
  • @Warmup ? @Measurement ??????????????????
  • @Fork ???????????????

8. JMH ????

????????? JMH ????????? Maven ??????????????? Maven ???????

org.apache.maven.plugins
maven-shade-plugin
2.4.1
package
shade
jmh-demo
org.openjdk.jmh.Main

9. ?? JMH Visual Chart

??????????????????? JMH Visual Chart ???????????

  • ?? JMH Visual Chart ???
  • ????? JSON ???????
  • ????????????????
  • 10. ?????????

    ??? JMH ???????????????????????

    • ???????????
    • ???????????

    ????????????????

    • ???????????????
    • ???????????
    • ?????????????

    ???????????????? JMH ??????????????????????????

    转载地址:http://vqpfk.baihongyu.com/

    你可能感兴趣的文章
    opencv 模板匹配, 已解决模板过大程序不工作的bug
    查看>>
    opencv&Python——多种边缘检测
    查看>>
    opencv&python——高通滤波器和低通滤波器
    查看>>
    OpenCV-Python接口、cv和cv2的性能比较
    查看>>
    opencv12-图像金字塔
    查看>>
    opencv21-像素重映射
    查看>>
    opencv26-模板匹配
    查看>>
    opencv27-轮廓发现
    查看>>
    opencv29-轮廓周围绘制矩形框和圆形框
    查看>>
    OpenCV3 install tutorial for Mac
    查看>>
    opencv3-Mat对象
    查看>>
    opencv30-图像矩
    查看>>
    opencv32-基于距离变换和分水岭的图像分割
    查看>>
    opencv4-图像操作
    查看>>
    opencv5-图像混合
    查看>>
    opencv6-调整图像亮度和对比度
    查看>>
    opencv9-膨胀和腐蚀
    查看>>
    OpenCV_ cv2.imshow()
    查看>>
    opencv——图像缩放1(resize)
    查看>>
    Opencv——模块介绍
    查看>>