繁体   English   中英

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

[英]Does Console.WriteLine cause a performance penalty even when the console is not visible? (C#)

我有一个带有大量WriteLine()函数的控制台应用程序,这个应用程序也应该作为“服务”运行(计划任务,用户在运行时不登录)。

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

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

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

首次运行Console Visible 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); 线路将需要零毫秒

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM