【发布时间】:2011-04-21 18:07:19
【问题描述】:
我必须为 GWT 应用程序选择一种高效的字符串连接方式。为此我做了一个小测试,并认为对其他人了解结果也会有所帮助。
因此,令人惊讶的是,差异非常小:1000000 次连接约 100 毫秒。所以,请从代码阅读的角度选择合适的。
我的测试很简单:
// + operator
private void str() {
Date start = new Date();
String out = "";
for(int a=0;a<1000000;a++) {
out += "item" + a;
}
Date end = new Date();
MessageBar.error("str:" + (end.getTime() - start.getTime()));
}
// StringBuffer implementation
private void sb() {
Date start = new Date();
StringBuffer out = new StringBuffer();
for(int a=0;a<1000000;a++) {
out.append("item" + a);
}
Date end = new Date();
MessageBar.error("sb:" + (end.getTime() - start.getTime()));
}
结果是:
str:1612
str:1788
str:1579
sb:1765
sb:1818
sb:1839
【问题讨论】:
-
这不是一个问题 :) 一般来说,连接更昂贵,因为
String是不可变的。 Java 每次都必须创建一个新的String对象。 -
你是否在不同的浏览器上检查过这个?托管版本和部署版本之间的区别是什么?
-
请将您的帖子表述为问题,并将答案写在下方。
标签: performance string gwt concatenation