我不得不为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 …Run Code Online (Sandbox Code Playgroud) 我说,我的表中有专栏updateStamp.我希望得到一种方法,在行更新时使用新的序列号更新该字段.
数据库有很多流量,主要是读取,但多个并发更新也可以批量发生.因此,解决方案应该导致最小的锁.
这个要求的原因是我需要有一个解决方案让客户端迭代表转发,如果一行更新 - 它应该再次出现在结果集上.
那么,查询就好了
SELECT *
FROM mytable
WHERE updateStamp > @lastReturnedUpdateStamp
ORDER BY updateStamp
Run Code Online (Sandbox Code Playgroud)
不幸的是,时间戳在这里不起作用,因为多个更新可能同时发生.