.NET C# Stopwatch用法

一般我们想要测试使用那种方法或着那种类型效率更高,使用Stopwatch类进行测试就可以,我也是现在才知道,汗一个。

先来看个小示例,如下。

前提,先引用using System.Diagnostics;命名空间。 

 1         //实例化一个sw
 2             Stopwatch sw = new Stopwatch();
 3             //开始计数
 4             sw.Start();
 5 
 6             //实例化一个sb
 7             StringBuilder sb = new StringBuilder();
 8 
 9             //循环
10             for (int i = 0; i < 10000; i++)
11             {
12                 //追加
13                 sb.Append(i);
14             }
15             //输出所用时间 毫秒
16             Console.WriteLine(sw.ElapsedMilliseconds);
17 
18             //重置为0
19             sw.Reset();
20             //开始计数
21             sw.Start();
22             //字义一个 s字符串
23             string s = "";
24 
25             //循环
26             for (int i = 0; i < 10000; i++)
27             {
28                 s = s + i;
29 
30             }
31             //输出所用时间 毫秒
32             Console.WriteLine(sw.ElapsedMilliseconds);
33 
34             //重置为0
35             sw.Reset();
36             //开始计数
37             sw.Start();
38             //字义一个 b字符串
39             string b = "";
40             //循环
41             for (int i = 0; i < 10000; i++)
42             {
43                 b += i;
44 
45             }
46             //输出所用时间 毫秒
47             Console.WriteLine(sw.ElapsedMilliseconds);
48             Console.ReadLine();

 

 下面在介绍几个属性。

  • Elapsed:返回一个TimeSpan对象,表示计时时间间隔;
  • ElapsedMilliseconds:返回计时经过的微秒数,精确度稍差,适合于稍长一点的计时;
  • ElapsedTicks: 返回计时经过的计时器刻度(timer tick)数。计时器刻度是Stopwatch对象可能的最小量度单位。计时器刻度时间的长度由特定的计算机和操作系统确定。Stopwatch对象的 Frequency静态字段的值表示一秒所包含的计时器刻度数。注意它与TimeSpan的Ticks属性所用的时间单位的区别。

应当根据计时任务的情况选择其中的一个属性。在我们的示例程序中,Elapsed属性提供了需要的精确度,用它来输出经过的微秒数。这也是TimeSpan的最高精确度了。 

使用IsRunning属性可以查看一个Stopwatch实例是否正在计时,使用StartNew方法可以开始一个新的计时器。 

 

posted @ 2010-04-21 17:22  TC-MrLee  阅读(4556)  评论(2编辑  收藏  举报