java stringbuilder stringformat 速度比较
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
- string.format
// 验证代码
for (int i = 0; i < 100; i++) {
long start = System.nanoTime();
String.format(“%s://%s:%s/%s/%s?%s=%s”, protocol,
long end = System.nanoTime();domain, port, args1, args2, queryKey, queryValue);
System.out.println(end - start);
}
// 实际的速度
最大値:31263865 ns
最小値:56854 ns
平均値:466271.38 ns
中央値:119898.5 ns
- StringBuilder
// 验证代码
for (int i = 0; i < 100; i++) {
long start = System.nanoTime();
String str = new StringBuilder(protocol).append(“://“)
long end = System.nanoTime();.append(domain).append(":").append(port).append("/")
.append(args1).append("/").append(args2).append("?").append(queryKey)
.append("=").append(queryValue).toString();
System.out.println(end - start);
}
// 实际的速度
最大値:56699 ns
最小値:2000 ns
平均値:3896.39 ns
中央値:2442.5 ns
单位: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
还没有评论,来说两句吧...