[英]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.