java stringbuilder stringformat 速度比较

待我称王封你为后i 2022-05-30 10:38 368阅读 0赞

1.一个一个地连接
//验证代码
for (int i = 0; i < 100; i++) {
long start = System.nanoTime();
String str = “”;
str += protocol;
str += “://“;
str += domain;
str += “:”;
str += port;
str += “/“;
str += args1;
str += “/“;
str += args2;
str += “?”;
str += queryKey;
str += “=”;
str += queryValue;
long end = System.nanoTime();
System.out.println(end - start);
}

//实际的速度
最大値:565394 ns
最小値:7225 ns
平均値:16901.71 ns
中央値:9757 ns

2.一起连接
// 验证代码
for (int i = 0; i < 10; i++) {
long start2 = System.nanoTime();
String s = protocol + “://“ + domain +
“:” + port + “/“ + args1 + “/“ + args2 + “?” + queryKey + “=” + queryValue;
long end2 = System.nanoTime();
System.out.println((end2 - start2) + “ns”);
}

// 实际的速度
最大値:63929 ns
最小値:1767 ns
平均値:4353.32 ns
中央値:2265 ns

  1. string.format
    // 验证代码
    for (int i = 0; i < 100; i++) {
    long start = System.nanoTime();
    String.format(“%s://%s:%s/%s/%s?%s=%s”, protocol,
    1. domain, port, args1, args2, queryKey, queryValue);
    long end = System.nanoTime();
    System.out.println(end - start);
    }

// 实际的速度
最大値:31263865 ns
最小値:56854 ns
平均値:466271.38 ns
中央値:119898.5 ns

  1. StringBuilder
    // 验证代码
    for (int i = 0; i < 100; i++) {
    long start = System.nanoTime();
    String str = new StringBuilder(protocol).append(“://“)
    1. .append(domain).append(":").append(port).append("/")
    2. .append(args1).append("/").append(args2).append("?").append(queryKey)
    3. .append("=").append(queryValue).toString();
    long end = System.nanoTime();
    System.out.println(end - start);
    }

// 实际的速度
最大値:56699 ns
最小値:2000 ns
平均値:3896.39 ns

中央値:2442.5 ns

  1. 单位:ns 1.一个一个地连接 2.一起连接 3. String.format 4. StringBuilder 最大値 565394 63929 31263865 56699 最小値 7225 1767 56854 2000 平均値 16901.71 4353.32 466271.38 3896.39 中央値 9757 2265 119898.5 2442.5

发表评论

表情:
评论列表 (有 0 条评论,368人围观)

还没有评论,来说两句吧...

相关阅读