清除字符串构建器的性能是哪一个?

Any*_*are 3 c# string performance stringbuilder .net-3.5

问:

哪一个是性能明智的:清除字符串构建器

AStringBuilder.Remove(0,AStringBuilder.Length);
Run Code Online (Sandbox Code Playgroud)
string theString = AStringBuilder.ToString();
ABuilder.Replace(theString,String.Empty);
Run Code Online (Sandbox Code Playgroud)
AStringBuilder.Length = 0;
Run Code Online (Sandbox Code Playgroud)

注意:我使用不包含Clear()方法的Framework 3.5 .

Dav*_*nan 7

更新事实证明您使用的是.net 3.5并且Clear已添加到.net 4.所以您应该使用Length = 0.实际上我可能会添加一个命名的扩展方法Clear来执行此操作,因为在我看来,它的可读性要高得多Length = 0.


我不会使用这些而是打电话Clear.

Clear 是一种方便的方法,相当于将当前实例的Length属性设置为0(零).

我无法想象它比你的任何变种慢,我也无法想象清除一个StringBuilder实例可能会成为一个瓶颈.如果在任何地方都存在瓶颈,它将出现在附加代码中.

如果清除对象的性能确实是一个瓶颈,那么您需要为代码计时以了解哪个变体更快.在考虑性能时,从来没有真正替代基准测试.