代码之家  ›  专栏  ›  技术社区  ›  Newbie

哪种更好,多次使用console.writeline()还是将输出保存在字符串生成器上并调用console.weetline一次?

c#
  •  6
  • Newbie  · 技术社区  · 17 年前

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

    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);
    

    谢谢,

    3 回复  |  直到 17 年前
        1
  •  8
  •   Reed Copsey    17 年前

    第一个。

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

    对于第二种选择,您尝试创建自己的缓冲区,然后再次缓冲。

    把它发挥到极致——重复1000万次。你的StringBuilder最终会占用你所有的内存,控制台只会输出输出。

        2
  •  0
  •   Anthony    17 年前

    最好的办法是对每个迭代进行10000次计时,看看哪个更快。我怀疑它们在性能方面几乎完全相同。

        3
  •  0
  •   Vijay    9 年前

    由于这是一个7年前的问题,这里的答案需要更清晰地添加我的答案。

    慰问。WriteLine将变慢。但它会消耗更少的内存。 第二个会占用更多内存,但速度会快得多。

    一些统计数据: 使用Console编写100000。写入行大约需要30秒。 使用字符串生成器只需不到一秒钟的时间。

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