关闭

C#:Array 的Clear 方法到底有多快???

1093人阅读 评论(0) 收藏 举报
分类:
 
从msdn中,我们知道Array 的Clear 方法的时间复杂度为O(n)。

我们今天测试一下,到底这个方法快,还是自己编写的快:

是Clear()快,还是直接new一个对象快。

看程序

 

 

   private void Experiment()
        {

            System.Diagnostics.Stopwatch stopwatch = new Stopwatch();
            stopwatch.Start();

            string[] aa = new string[10000];

            for (var loop = 0; loop < 100000; loop++)
            {

               // string[] aa = new string[10000];
                
                for (var i = 0; i < 10000; i++)
                { aa[i] = "a"; }

                //Array.Clear(aa, 0, 10000);

                for (var i = 0; i < 10000;i++ )
                {
                    aa[i] = null;
                }

            }

            stopwatch.Stop();

            Console.WriteLine("All timeL:"+stopwatch.Elapsed.TotalSeconds);
        }


经过对比,得出如下数据:

对于Clear()与new object两种方案对比,前者耗时5.7秒。后者耗时6.3s

对于Clear()与自己编写的遍历算法对比,前者是5.7s,后者是8.5s。

这些数据的基础条件是对一个length为10000的数组执行10万次统计的时间。

意思很明显了。如果你需要执行一次,就无所谓了。

如果需要很多次,那么还是认真写代码比较好。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:341527次
    • 积分:4783
    • 等级:
    • 排名:第6051名
    • 原创:103篇
    • 转载:140篇
    • 译文:5篇
    • 评论:37条
    最新评论