获取函数执行时间

           获取一个函数或者一段代码的执行时间在C#中有以下几种方法。

       第一种方法(获取粗略的时间):

       DateTime startTime = DateTime.Now;//记录将要执行目标代码段的时间点
       
       //_________________要执行的函数______________________
       //Code……
       
       DateTime endTime = DateTime.Now; TimeSpan span = endTime - startTime;
       Console.WriteLine(span);

        
    第二种方法(获取精确的时间): 

       这里需要用到C#提供的一个类StopWatch---(提供一组方法和属性,可用于准确地测量运行时间),它位于System.Diagnostics

命名空间下。

       Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
       stopwatch.Start(); //开始监视目标代码段
 
       //_________________要执行的函数______________________
       //Code……
 
       stopwatch.Stop(); //停止监视目标代码段
       TimeSpan timeSpan = stopwatch.Elapsed; //获取总时间
       double hours = timeSpan.TotalHours; //小时
       double minutes = timeSpan.TotalMinutes;  //分钟
       double seconds = timeSpan.TotalSeconds;  //秒数
       double milliseconds = timeSpan.TotalMilliseconds;  //毫秒数

         第三种方法使用Environment.TickCount属性,它返回获取系统启动后经过的毫秒数。请注意,因为它派生自系统计时器的分辨率

TickCount 属性仅限于系统计时器,它通常在 10 到 16 毫秒为单位的范围的分辨率。使用方法也是如同第一种那样分别进行记录,然

后相减即可

       第四种方法(获取高精度时间):

      [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
      static extern bool QueryPerformanceCounter(ref long PerformanceCounter); //返回高精确度性能计数器的值,用来精确计算执行时间

      [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
      static extern bool QueryPerformanceFrequency(ref long PerformanceFrequency);//返回硬件支持的高精度计数器的频率

      static void Main(string[] args)
    {
          long liPerfFreq = 0, timeStart = 0, timeEnd =0;
      QueryPerformanceFrequency(ref liPerfFreq);
      
          QueryPerformanceCounter(ref timeStart);

          //_________________要执行的函数______________________
          //Code……
          
          QueryPerformanceCounter(ref timeEnd);
          decimal result = (timeEnd - timeStart) / (decimal)liPerfFreq;
          Console.WriteLine(result);
<span style="font-family:KaiTi_GB2312;">          }</span>



 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值