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

        将结果输出到控制台是一种良好的习惯,让我们知道程序的运行情况。但是有些时候,为了调试或者编程者不小心,会在嵌套循环的内层循环中加入控制台输出语句。从知识和直觉上来讲,这种做法肯定会影响程序运行效率,但是到底影响到如何程度呢?为回答这个问题,我做了如下测试。

       本测试使用C#, 主要是两个函数。这两个函数的主题都是一个100000次的循环,其一每次循环将数字转换为文本并输出到控制台,另外一个只是将数字转换为文本但不输出。代码如下:

 

using System;
using System.Collections.Generic;
using System.IO;
using System.Diagnostics;


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Program.testOutputTime();
            Program.testNoOutputTime();
        }

        public static void testOutputTime()
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 10; ++i)
            {
                for (int j = 0; j < 10000; ++j)
                {
                    Console.WriteLine(i.ToString());
                }
            }
            sw.Stop();
            Console.WriteLine("Time with output:    " + sw.Elapsed.Ticks.ToString());
        }

        public static void testNoOutputTime()
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            for (int i = 0; i < 100; ++i)
            {
                for (int j = 0; j < 10000; ++j)
                {
                    i.ToString();// Console.WriteLine(i.ToString());
                }
            }
            sw.Stop();
            Console.WriteLine("Time without output:    " + sw.Elapsed.Ticks.ToString());
        }
    }
}


程序运行结果为:

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



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值