这个网站上已经存在很多性能问题,但是我发现几乎所有这些都是特定于问题且相当狭窄的问题.几乎所有人都重复这些建议,以避免过早优化.
我们假设:
我在这里寻找的是在一个关键算法中挤出最后几个百分点的策略和技巧,除此之外别无他法.
理想情况下,尝试使答案语言不可知,并在适用的情况下指出建议策略的任何缺点.
我将使用我自己的初步建议添加回复,并期待Stack Overflow社区可以想到的任何其他内容.
最近我发现自己使用StringBuilder进行所有字符串连接,无论大小,但是在最近的性能测试中,我换掉了同事的stringOut = string1 +"." String2样式连接(在一个10000x +循环中使用,每次都是StringBuilder)用于StringBuilder只是为了看看它在次要连接中会有什么不同.
我发现,在性能测试的许多次运行中,无论是串联还是StringBuilder,更改都无论是更高还是更低(重申这是针对小型连接).
在什么时候,StringBuilder对象的"newing up"否定了使用它的好处?
可能重复:
String vs StringBuilder
我刚刚重温了一些我曾经拿过VB.NET的书.我不确定我是否已经掌握了这一点,了解StringBuilder是如何/是什么.
使用指南是什么?如果要连接2个字符串或50个字符串,最好使用它吗?
或者当总字符串长度大于128个字符时?
或者,只要您使用它来将字符串添加到一起,您会看到性能优势吗?
在哪种情况下,最好使用StringBuilder实例来构建SQL语句string.format("Select * from x where y = {0}",1)?
总是让我感到震惊的是,声明另一个变量并包含名称空间对小字符串连接不利,但我现在不确定.
对不起,很多文档告诉你要使用什么,而不是什么是最好的.