一、前言

  有时候为了知道一段代码的运行效率,我们想知道某段代码运行所耗费的时间,这时可以用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是静态字段,要直接通过类名访问,不能通过对象名访问。

  其他功能也比较简单,通过类定义一看就知道。