结果输出到控制台对运行时间的影响
2011-12-12 15:26
218 查看
将结果输出到控制台是一种良好的习惯,让我们知道程序的运行情况。但是有些时候,为了调试或者编程者不小心,会在嵌套循环的内层循环中加入控制台输出语句。从知识和直觉上来讲,这种做法肯定会影响程序运行效率,但是到底影响到如何程度呢?为回答这个问题,我做了如下测试。
本测试使用C#,主要是两个函数。这两个函数的主题都是一个100000次的循环,其一每次循环将数字转换为文本并输出到控制台,另外一个只是将数字转换为文本但不输出。代码如下:
程序运行结果为:
本测试使用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.因此,为了效率考虑,以后编程的时候应该杜绝这样的输出方式。不要让不必要的输出降低系统的运行速度。
相关文章推荐
- eclipse运行C++控制台不输出结果的解决办法
- 习题8:编写一个控制台应用程序,完成下列功能,并写出运行程序后输出的结果。
- eclipse运行C++控制台不输出结果的解决办法
- 有问题的阶乘之和运行操作行得到输出结果和运行时间的表格(应为还没有看附录)
- Phpstorm在控制台中输出运行结果
- phpstorm在控制台输出脚本运行结果
- Java控制台输出程序运行时间
- C#调用CMD并把运行结果输出到winform窗体中
- windows 控制台程序,程序运行闪一下就没了,看不到运行结果,咋办?
- mapreduce不同类型的数据分到同一个分区是否会影响输出结果
- Adam学习10之集群节点的内存对运行时间的影响
- strom-1.1.0模拟单词统计功能,Spout编写,Bolt编写,TopologyDriver编写,本地模式运行,集群模式运行,集群模式下看输出结果
- 运行结果是输出自己输入的数组,求解
- 在控制台上输入一个字符串,将其中夹杂的字母去除,只剩数字,然后对对这些数字进行全排列,输出全排列结果
- PAT乙级 1026. 程序运行时间(15)--浮点数四舍五入,格式化输出
- SAS运行输出看不到结果
- 运行代码在控制台输出“Hello World”
- 为方便调试程序查看结果 而写的控制台输出类[继承CWnd]
- C++运行结果中让控制台停住的办法
- c++ 输出运行时间