一般我們都想知道執(zhí)行一段程序耗費多長時間,以此為標(biāo)準(zhǔn)來繼續(xù)優(yōu)化我們的代碼,其中的一個專業(yè)術(shù)語叫做時間復(fù)雜度O(n)。
- 新建一個計時器:Stopwatch sw = new Stopwatch();
2.開始計時:sw.Start();
3.停止計時:sw.Stop();
4.時間統(tǒng)計:sw.ElapsedMilliseconds(單位毫米)
5.清零,重新計時:sw.Restart();
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch(); //新建定時器
sw.Start(); //開始計時
for(int i=0;i<1000000;i++)
{
int a = i;
for (int ii = 0; i < 1000000; i++)
{
int aa = ii;
}
}
sw.Stop(); //停止計時
Console.WriteLine("總耗時:" + sw.ElapsedMilliseconds.ToString()); //時間統(tǒng)計
sw.Restart();
for (int i = 0; i < 1000000; i++)
{
int a = i;
for (int ii = 0; i < 1000000; i++)
{
int aa = ii;
}
}
sw.Stop();
Console.WriteLine("總耗時:" + sw.ElapsedMilliseconds.ToString());
Console.ReadLine();
}
運行結(jié)果:
總耗時:2
總耗時:2
如果我們將第二次計時的sw.Restart();替換為sw.Start();,此時計數(shù)器會累計計時。
運行結(jié)果:
總耗時:2
總耗時:4 (第一次的計時也會加到這次的統(tǒng)計時間里面)
所以院崇,Start()與Restart()的使用是有區(qū)別的,不可混淆袍祖。
當(dāng)然啦底瓣,同樣的程序,運行在不同的電腦蕉陋,如果CPU速度不一樣捐凭,運行的結(jié)果也是會有差異的。