即使控制台不可见,Console.WriteLine是否会导致性能下降? (C#)

时间:2015-09-20 10:02:18

标签: c# .net console-application

我有一个包含许多WriteLine()函数的控制台应用程序,此应用程序也应该作为"服务" (计划任务,用户在运行时未登录)。

在这种情况下,没有要显示的实际cmd窗口。在这种情况下,Console.WriteLine()是否会导致明显的性能损失?

2 个答案:

答案 0 :(得分:3)

即使控制台不可见,也会导致性能下降

我的实验运行了这个代码的和平与控制台可见,再次与控制台隐藏,并测量性能

首先运行控制台可见 24683 毫秒
第二次运行控制台可见 23363 毫秒

首先运行控制台隐藏 167 毫秒
第二次运行控制台隐藏 162 毫秒

    static void Main(string[] args)
    {
        WriteMilionLines();
    }

    static void WriteMilionLines()
    {
        Stopwatch sw = new Stopwatch();
        sw.Start();

        for (int i = 0; i < 1000000; i++)
        {
           Console.WriteLine(i);
        }
        sw.Stop();

        string message = "ElapsedMilliseconds" + sw.ElapsedMilliseconds;
        File.WriteAllText(@"c:\log.txt", message);
    }

通过评论Console.WriteLine(i);行,它将需要Zero millisec

答案 1 :(得分:2)

不,它不会引人注意。除非您的应用程序执行99% Console.WriteLine()并且几乎没有其他任何东西,否则差别可以忽略不计。

&#xA;&#xA;

如果您仍然担心性能,你可以将Console-Calls包装成一个你可以控制的方法,并测量你的应用程序经历的总时间,甚至引入一个开关(bool变量)来控制它的调用。

&#xA;