一、前言
有时候为了知道一段代码的运行效率,我们想知道某段代码运行所耗费的时间,这时可以用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是静态字段,要直接通过类名访问,不能通过对象名访问。
其他功能也比较简单,通过类定义一看就知道。