使用Stopwatch计算程序运行的时间

有时候我们想知道一个代码段,或一个方法执行的时间。一般的做法是在开始执行前创建一个DateTime变量记录当前的时间,然后在执行结束后面在创建一个DateTime变量记录当前时间。这样把中两个时间一减就能得到时间差了即一个TimeSpan的变量。这样做完全没有问题,那么如果我要计算好多代码段的执行时间呢?按照这个方法,我要创建很多DateTime变量,当然你会说可以直接使用DateTime.Now,而不创建新的DateTime变量,无论如何,这样的做法都太繁琐了。.NET提供了一个类——Stopwatch用来计时。你只需要使用它的Start方法,在你需要计时的时候,而在计时结束是调用Stop方法就好了。它会有属性Elapsed来返回时间间隔。真的好高大上!

 

不使用Stopwatch:

DateTime dt1 = DateTime.Now;

//execute .....

DateTime dt2 = DateTime.Now;

//execute .....

TimeSpan ts = (DateTime.Now -dt2) + (dt2 - td1);

 

使用Stopwatch

Stopwatch sw = new Stopwatch();

sw.Start();

//execute ....

sw.Stop();

//......

sw.Start();

//execute....

sw.Stop();

//You can use sw.Elapsed or other properties

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中,你可以使用不同的方法计算程序的运行时间。以下是三种常用的方法: 第一种方法是使用System.DateTime.Now方法。你可以在程序开始和结束时获取当前时间,并计算时间差来得到程序的运行时间。示例代码如下: DateTime dt1 = System.DateTime.Now; // 程序执行的代码 DateTime dt2 = System.DateTime.Now; TimeSpan ts = dt2.Subtract(dt1); Console.WriteLine("程序运行时间:{0} 毫秒", ts.TotalMilliseconds); 第二种方法是使用Stopwatch类。你需要创建一个Stopwatch对象,并在程序开始和结束时分别调用Start()和Stop()方法。然后,通过Elapsed属性来获取程序的运行时间。示例代码如下: System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); sw.Start(); // 程序执行的代码 sw.Stop(); TimeSpan ts2 = sw.Elapsed; Console.WriteLine("程序运行时间:{0} 毫秒", ts2.TotalMilliseconds); 第三种方法是使用C API。你需要使用QueryPerformanceCounter函数来获取计数器的值,并使用QueryPerformanceFrequency函数获取计数器的频率。然后,通过计算差值来得到程序运行时间。示例代码如下: long count1 = 0; long count2 = 0; long freq = 0; double result = 0; QueryPerformanceFrequency(ref freq); QueryPerformanceCounter(ref count1); // 程序执行的代码 QueryPerformanceCounter(ref count2); result = (double)(count2 - count1) / (double)freq; Console.WriteLine("程序运行时间:{0} 秒", result);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值