您的位置:首页 > 其它

结果输出到控制台对运行时间的影响

2011-12-12 15:26 218 查看
将结果输出到控制台是一种良好的习惯,让我们知道程序的运行情况。但是有些时候,为了调试或者编程者不小心,会在嵌套循环的内层循环中加入控制台输出语句。从知识和直觉上来讲,这种做法肯定会影响程序运行效率,但是到底影响到如何程度呢?为回答这个问题,我做了如下测试。
本测试使用C#,主要是两个函数。这两个函数的主题都是一个100000次的循环,其一每次循环将数字转换为文本并输出到控制台,另外一个只是将数字转换为文本但不输出。代码如下:



usingSystem;
usingSystem.Collections.Generic;
usingSystem.IO;
usingSystem.Diagnostics;

namespaceConsoleApplication1
{
classProgram
{
staticvoidMain(string[]args)
{
Program.testOutputTime();
Program.testNoOutputTime();
}

publicstaticvoidtestOutputTime()
{
Stopwatchsw=newStopwatch();
sw.Start();
for(inti=0;i<10;++i)
{
for(intj=0;j<10000;++j)
{
Console.WriteLine(i.ToString());
}
}
sw.Stop();
Console.WriteLine("Timewithoutput:"+sw.Elapsed.Ticks.ToString());
}

publicstaticvoidtestNoOutputTime()
{
Stopwatchsw=newStopwatch();
sw.Start();
for(inti=0;i<100;++i)
{
for(intj=0;j<10000;++j)
{
i.ToString();//Console.WriteLine(i.ToString());
}
}
sw.Stop();
Console.WriteLine("Timewithoutoutput:"+sw.Elapsed.Ticks.ToString());
}
}
}




程序运行结果为:

9
9
9
9
9
Timewithoutput:59471697
Timewithoutoutput:1184240
Pressanykeytocontinue...
从结果可以看出,在大量连续输出信息到控制台的时候,程序效率受到了明显的影响。上面例子中,两函数运行之间之比达到了100:2.因此,为了效率考虑,以后编程的时候应该杜绝这样的输出方式。不要让不必要的输出降低系统的运行速度。



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: