我有一个包含许多WriteLine()
函数的控制台应用程序,此应用程序也应该作为"服务" (计划任务,用户在运行时未登录)。
在这种情况下,没有要显示的实际cmd窗口。在这种情况下,Console.WriteLine()
是否会导致明显的性能损失?
答案 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()
并且几乎没有其他任何东西,否则差别可以忽略不计。
如果您仍然担心性能,你可以将Console-Calls包装成一个你可以控制的方法,并测量你的应用程序经历的总时间,甚至引入一个开关(bool变量)来控制它的调用。
&#xA;