.NET C# Stopwatch用法

本文详细介绍如何使用C#中的Stopwatch类进行性能测试,通过比较不同字符串操作的方法,如StringBuilder与字符串连接,来评估其效率。同时,介绍了Stopwatch类的属性,如Elapsed、ElapsedMilliseconds和ElapsedTicks,以及IsRunning属性和StartNew方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般我们想要测试使用那种方法或着那种类型效率更高,使用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方法可以开始一个新的计时器。 

 

转载于:https://www.cnblogs.com/LeeYongze/archive/2010/04/21/1717405.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值