從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萬次統計的時間。
意思很明顯了。如果你需要執行一次,就無所謂了。
如果需要很多次,那麼還是認真寫代碼比較好。