使用console.writeline()多次还是将输出保存在stringbuilder中并调用console.writeline一次更好?

7

哪一个更快?哪一个使用的内存更少?

Console.WriteLine("string1")
Console.WriteLine("string2")
Console.WriteLine("string3")
Console.WriteLine("stringNth")

或者

StringBuilder output = new StringBuilder();
output.AppendLine("string1");
output.AppendLine("string2");
output.AppendLine("string3");
output.AppendLine("stringNth");
Console.WriteLine(output);

thanks,

3个回答

10

第一点。

控制台类将把此输出缓冲到标准输出流中。

使用第二个选项,您正在尝试创建自己的缓冲区,然后再次进行缓冲。

将其推向极端 - 这样做10,000,000次。 您的StringBuilder最终会耗尽所有内存,而Console只会输出输出。


1

因为这是一个7年前的问题,这里的答案需要更多的清晰度,我来补充一下。

Console.WriteLine会更慢。但它将消耗更少的内存。 第二种方法将占用更多的内存,但速度会快得多。

一些统计数据: 使用Console.Writeline写入100,000次需要大约30秒。 使用字符串构建器只需不到一秒钟。

如果字符串很小,那么内存就不是问题,使用第二种方法会更好。


-1

最好的方法是计时每个循环10,000次,看哪个更快。我怀疑它们在性能方面几乎完全相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接