> From: Xie Xiaodong [mailto:xxd82...@gmail.com]
> Subject: Re: Access Log /Filter/?
> 
> http://www.javalobby.org/java/forums/t88518.html

I think you're cherry-picking the data.  The most useful comment about 
StringBuilder in that thread was this:

"Re: StringBuffer
> Thus, the performance of the two classes becomes identical.

Reality is more complicated than that.
- You can't rely on latest/hardest optimizations in the HotSpot Client VM, 
which is the VM you gotta use for most desktop apps, games and others.
- Optimizations are not portable. Just because Sun has optimizations X it 
doesn't mean that IBM, BEA, GCJ etc. (even at the same Java SE level) have it 
too, and vice-versa.
- Optimizations are fragile and difficult to predict. Say you have a 
StringBuffer that is non-escaping (thus benefits from lock elision etc) because 
it's a local var of a single method. Now if this method grows too big and you 
refactor it into multiple smaller, private helper methods, suddenly the 
StringBuffer is passed from one method to another and it's not anymore a 
non-escaping local... unless, thanks to inlining or smarter escape analysis, 
the optimized code can handle it again as non-escaping... but now you're 
depending on a combination of several optimizations, and it's increasingly 
difficult (at least for the average developer) to predict the compiler's 
behavior and to rely on its behavior.

Conclusion (for this particular optimization): Using StringBuilder is no more 
complex than StringBuffer, so there's no excuse to not use it when you now the 
buffer is unshared. Unlike some other optimizations, this doesn't confuse your 
code, doesn't create maintenance problems or incur increased development cost. 
in cases like this - where writing optimal code is just as easy as non-optimal 
code - I'd optimize since version 0."

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to