程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#:Array 的Clear 方法到底有多快???

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

編輯:C#入門知識

 
從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萬次統計的時間。

意思很明顯了。如果你需要執行一次,就無所謂了。

如果需要很多次,那麼還是認真寫代碼比較好。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved