use*_*529 7 string performance gwt concatenation
我不得不为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()));
}
Run Code Online (Sandbox Code Playgroud)
结果是:
str:1612
str:1788
str:1579
sb:1765
sb:1818
sb:1839
Run Code Online (Sandbox Code Playgroud)
关于stan229的问题和比尔蜥蜴的请求.
对于浏览器与浏览器之间的性能差异,这确实很有趣.对我来说,问题是"选择哪种连接方法",我得到了我想要的答案.但这里有更多的测试结果:
chrome 10.0.648.204:
str: 748
sb : 849
firefox 3.6.16:
str: 1681
sb : 1861
ie 8:
str: 2484
sb : 4094
opera 11.10
str: 802
sb : 792
Run Code Online (Sandbox Code Playgroud)
所以,我得到的答案是:+运算符提供更好的性能
我的下一个问题是提供更好性能的原因:
int i=0;
// this
String result = String.valueOf(i);
// or this
String result = i + "";
Run Code Online (Sandbox Code Playgroud)
我会做一次测试,或者,如果你有答案 - 请发帖