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();
}
}
}
—————————————————————————————————