.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方法可以开始一个新的计时器。 

 

你可能感兴趣的:(.net)