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

原创 2013年12月02日 14:02:04
 
从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万次统计的时间。

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

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

相关文章推荐

Java Thread到底有多快/慢?

Java Thread到底有多快/慢?   创建一个能占满CPU的任务,然后启动CPU个,看时间,然后启动更多,看平均每个任务的执行时间。 计算Fibonacci数列的算法。 启动n个线程,每...

Opencv 例程讲解 6 ---- 图片融合 addWeighted到底有多快?

众所周知,视频剪辑中有一种特效,叫做淡入淡出。它的实现原理其实很简单,可以看做两张图片的一系列线性融合,即融合系数随着时间的变化而增加或减少,它实际上利用到的是一个简单的点运算函数。在Opencv中,...

快排到底有多快?元芳,你还看吗?

大师级的文章,总是能够使你更接近于事物的本质。   最近看了pongba的数学之美番外篇:快排为什么那么快。文中提到了Mackay的一篇文章(这里是译文),里面提到了使用信息论来解释快排与堆排的速...
  • cyh24
  • cyh24
  • 2012年10月28日 01:27
  • 4999

XML解析到底能多快?

【经验总结】XML解析到底能多快? ----by abllen 近来,因为工作的关系,需要对大XML文件进行解析使用,就专门对解析效率问题作了下研究。    场景: 在我们的场景中,会将...

在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢

在C#中数组,ArrayList,List都能够存储一组对象,那么这三者到底有什么样的区别呢。 数组     数组在C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元...

C#的性能到底有多差?

C#的性能到底有多差? 这篇文章带领大家来看看c#的性能问题。当然了,作为比较的选手是c/c++。 首先说说测试环境:   操作系统:win7 旗舰版 内...

蒙特卡洛方法到底有什么用

蒙特卡洛方法(Monte Carlo method,也有翻译成“蒙特卡罗方法”)是以概率和统计的理论、方法为基础的一种数值计算方法,将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以...

“==”和equals()方法到底有什么区别

两个对象是否相等的含义 “==”和equals()都属于对象的关系运算中的比较相等。那么判断一个类的两个对象是否相等有什么含义呢?有两层含义: ①判断它们是否引用同一个实例; ②当两个对象分别引用...

请问基类中的虚方法到底有什么作用?

请问基类中的虚方法到底有什么作用?   2007-04-25 14:57:37|  分类: .NET/C# |  标签: |字号大中小 订阅 只有基类的方法加上...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#:Array 的Clear 方法到底有多快???
举报原因:
原因补充:

(最多只允许输入30个字)