C#中的Stopwatch类位于Diagnostics空间下,其功能主要是实现对程序运行的精确计时,它的用法比较简单,精确度也很高。
比如当我们写爬虫程序时可以用来计算爬虫爬取的时间;可以用来比较一些语法的优劣,比如数据库的查询,第二次会比第一次慢很多,这是由于查询缓存的问题;或者是递归和for循环哪个快;或者锁和没锁哪个快,数据结构中查找算法、排序算法的时间比较等等。计算出程序运行的精确时间对于提高我们编程能力是很有帮助的。
Start():
开始计时。
Stop();
停止计时。
StartNew():
对新的 System.Diagnostics.Stopwatch 实例进行初始化,将运行时间属性设置为零,然后开始测量运行时间。 它的返回结果是刚刚开始测量运行时间的
Restart():
停止时间间隔测量,将运行时间重置为零,然后开始测量运行时间。
ElapsedMilliseconds { get;}:
获取当前实例测量得出的总运行时间(以毫秒为单位)。
(以上就是一些常用的计时方法和属性)
下面就简单展示一个demo
using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace StopWatchDemo{class Program{static void Main(string[] args){int i = 6000000,m1= 0,m2=0;Stopwatch sw = new Stopwatch();sw.Start();for (int k = 0; k <= i; k++){m1++;}Console.WriteLine(sw.ElapsedMilliseconds);sw.Restart();for (int k = 0; k <= i; k+=2){m2++;}sw.Stop();Console.WriteLine(sw.ElapsedMilliseconds);Console.ReadKey();}}}
—————————————————————————————————