由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - Java StringBuilder myth debunked
相关主题
Java练习题 3int --> String?
Java练习题 9这两个程序哪个更快?
java 的内存分布?Question on JSP EL
a simple question有什么办法高效的进行replaceAll
请问StringBuffer的OutofMemory问题菜鸟问个简单的问题
TIJ上写错了?我自己编了个Java面试题
ArrayList vs Array, StringBuffer vs String, 大侠们给讲讲有请教一题
garbage collection issue为什么我这个参数的内容存不下?
相关话题的讨论汇总
话题: java话题: debunked话题: myth话题: string
进入Java版参与讨论
1 (共1页)
b**g
发帖数: 335
l*********s
发帖数: 5409
2
what is the conclusion?
c*m
发帖数: 836
3

现在的JVM allocate/gc instance效率非常高,象这种不用string concatenation用
stringbuffer/builder的事都是1.4以前的老黄历了,类似的还有object pool什么的也
都是过时的东西了。何况作者才测试了1000个循环,还在一个loop里,VM很容易在编译
的时候优化,就算1.4也未必能看出啥不同。测试一百万还差不多。这个作者一看就没
正儿八经写过java,对jvm的基本性能和最新进展一点数都没有。
对于一般的app development,早没人在乎string concatenation了,我用
stringbuilder主要是觉得它自带的methods比较handy。

【在 b**g 的大作中提到】
: http://www.javacodegeeks.com/2013/03/java-stringbuilder-myth-de
z****e
发帖数: 54598
4
嗯,对于java的看法n多人还停留在上个世纪
对于gc,一个常见的经验就是把内存使用控制在75%,最好是70%左右
这样gc的pause就不会过长,应付大多数应用应该是够了

【在 c*m 的大作中提到】
:
: 现在的JVM allocate/gc instance效率非常高,象这种不用string concatenation用
: stringbuffer/builder的事都是1.4以前的老黄历了,类似的还有object pool什么的也
: 都是过时的东西了。何况作者才测试了1000个循环,还在一个loop里,VM很容易在编译
: 的时候优化,就算1.4也未必能看出啥不同。测试一百万还差不多。这个作者一看就没
: 正儿八经写过java,对jvm的基本性能和最新进展一点数都没有。
: 对于一般的app development,早没人在乎string concatenation了,我用
: stringbuilder主要是觉得它自带的methods比较handy。

z****e
发帖数: 54598
5
new的话,我在我的macbook pro上测验的结果
10^4条语句,用时5ms
t********e
发帖数: 880
6
很无知的一篇文章,根本没明白StringBuilder的真正使用场景
k***r
发帖数: 4260
7
科普一下真正使用场景是啥?

【在 t********e 的大作中提到】
: 很无知的一篇文章,根本没明白StringBuilder的真正使用场景
b******y
发帖数: 9224
8

没具体看那篇文章,不过我原先听说的是StringBuilder里面没有multi threading的
concurrency control, 速度比StringBuffer快一些。因为StringBuffer内置有thread
control, 也就是某段程序是一次只有一个thread可以执行的。

【在 k***r 的大作中提到】
: 科普一下真正使用场景是啥?
k***r
发帖数: 4260
9
这个只是为了address StringBuffer的efficiency/deficiency,但如果string
concatination不是问题了,大概这两个都没有使用的必要了

thread

【在 b******y 的大作中提到】
:
: 没具体看那篇文章,不过我原先听说的是StringBuilder里面没有multi threading的
: concurrency control, 速度比StringBuffer快一些。因为StringBuffer内置有thread
: control, 也就是某段程序是一次只有一个thread可以执行的。

t********e
发帖数: 880
10
像str1 + str2 + ... + strN这样的代码根本没有必要用StringBuilder, 因为java会
自动把它编译成使用StringBuilder. 只有java编译器不知道可以用一个StringBuilder
来做的时候才需要直接用StringBuilder来写,比如
String s = "";
for (...) {
s += ....
}

【在 k***r 的大作中提到】
: 科普一下真正使用场景是啥?
F****n
发帖数: 3271
11
String concatenation 不可能没有问题
因为Java String immutable,
编译器最多只能通过上下文猜
并不能涵盖所有需要StringBuilder的Case

【在 k***r 的大作中提到】
: 这个只是为了address StringBuffer的efficiency/deficiency,但如果string
: concatination不是问题了,大概这两个都没有使用的必要了
:
: thread

1 (共1页)
进入Java版参与讨论
相关主题
为什么我这个参数的内容存不下?请问StringBuffer的OutofMemory问题
Recusion is fucking magic!!TIJ上写错了?
初学者code请教 (大牛莫取笑)ArrayList vs Array, StringBuffer vs String, 大侠们给讲讲有
java多线程问题请教garbage collection issue
Java练习题 3int --> String?
Java练习题 9这两个程序哪个更快?
java 的内存分布?Question on JSP EL
a simple question有什么办法高效的进行replaceAll
相关话题的讨论汇总
话题: java话题: debunked话题: myth话题: string