一、前言
有時候為了知道一段代碼的運行效率,我們想知道某段代碼運行所耗費的時間,這時可以用Stopwatch類,需要引用System.Diagnostics;
二、測試程序
Stopwatch的功能非常簡單,它之后一個不帶參數的構造方法,構造出對象后調用Start方法即可讓計時器開始運行,調用Stop方法讓計數器停止運行,Elapsed屬性記錄的就是時間,測試程序如下:
using System; using System.Diagnostics; namespace test { class Program { static void Main(string[] args) { string s = ""; Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < 100000; i++) { s += i; } sw.Stop(); Console.WriteLine(sw.Elapsed); Console.ReadKey(); } } }
運行結果:
可以知道被sw.Start();和sw.Stop();包夾的那段代碼運行時間為16秒多。代碼第21行Elapsed屬性得到的是TimeSpan對象,如果用Console.WriteLine()輸出的話得到的是“時:分:秒.毫秒”格式,如果換成ElapsedMilliseconds屬性那得到的就是毫秒時間,如果用ElapsedTicks得到的是節拍數。將節拍數除以Frequency得到的就是時間,單位:秒。注意Frequency是靜態字段,要直接通過類名訪問,不能通過對象名訪問。
其他功能也比較簡單,通過類定義一看就知道。