|
|
1
4
尊敬的J.Skeet先生准确地分析了这个问题: |
|
|
2
42
StringBuilder的默认容量为16个字符(我使用.NET Reflector查找)。 |
|
|
3
35
默认值为16,这似乎是.NET框架中任何类型数组或列表的默认容量。 StringBuilder上所需的重新分配数量越少越好。 同时,也不需要分配太多的资源。 我通常用一些关于StringBuilder最终大小的粗略估计来实例化StringBuilder。 例如,这可以基于一些迭代计数,稍后您将使用这些计数来构建字符串,乘以此迭代中每个项所需的大小。
当StringBuilder的大小太小,无法写入下一个字符串时, StringBuilder的内部char数组重新分配到当前大小的两倍。 |
|
|
4
11
今天这个问题是另一个问题的复制品,但我注意到有一部分没有回答。如人们所说,默认值(假设这意味着“当不使用足够大的字符串创建时”)是16,但在这里,当您应该更改它时,我看不到任何内容。 当你可以这样做的时候,你可以改变它作为一个可能的优化。事实上,16的选择与优化相反。 优化 选择价值观和方法,以便特别适合特定案例或可能案例的子集(通常不是“使事情更快”,尽管我们经常使用这个词)。在这里,这个班的设计师必须处理 泛化 -选择价值和方法,以便在广泛的案例中提供合理的良好表现。 它们越小,记忆的使用就越少。 它们越大,处理更大字符串的重新分配就越少。 在某些情况下,二进制圆(二次幂的整数)比其他数字更能提供更好的性能,这有几个原因,因此他们选择了其中一个,但除了4或16或1024之间的选择外,还需要平衡不同的可能值。
某人
使用
如果他们打算
如果他们做的事情长度可能在23到34个字符之间,他们应该使用34个字符。 如果他们所做的事情可能永远不会超过60个字符,但有时可能会有,他们应该使用64个字符(不要为大多数部分重新分配,并在少数情况下获得上述两个好处的力量)。 如果在这个问题上不可能得出结论,或者至少很难得出结论,而不是性能热点,那么您应该使用缺省值。 |
|
5
1
我们可以利用
这里容量定义默认容量
|
|
6
0
[编辑:当时,问题是关于
你是说
如果你是说
|
|
|
7
0
字符串生成器的默认容量为 16字 , 字符串生成器的最大容量为 2147483647个字符 . 所以不用担心存储长时间响应!!!! |
|
|
8
-1
读关于 Stringbuilder capacity 也有示例应用程序可以证明这一点。 |