zoukankan      html  css  js  c++  java
  • C#计算一段代码的运行时间

    第一种方法利用System.DateTime.Now:
    static void SubTest()
    {
      DateTime beforDT = System.DateTime.Now;
     
      //耗时巨大的代码
     
      DateTime afterDT = System.DateTime.Now;
      TimeSpan ts = afterDT.Subtract(beforDT);
      Console.WriteLine("DateTime总共花费{0}ms.", ts.TotalMilliseconds);
    }
    第二种用Stopwatch类(System.Diagnostics):
    static void SubTest()
    {
      Stopwatch sw = new Stopwatch();
      sw.Start();
     
      //耗时巨大的代码
     
      sw.Stop();
      TimeSpan ts2 = sw.Elapsed;
      Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);
    }
    第三种用API实现:
    [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
    static extern bool QueryPerformanceCounter(ref long count);
    [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
    static extern bool QueryPerformanceFrequency(ref long count);
    static void SubTest()
    {
      long count = 0;
      long count1 = 0;
      long freq = 0;
      double result = 0;
      QueryPerformanceFrequency(ref freq);
      QueryPerformanceCounter(ref count);
     
      //耗时巨大的代码
     
      QueryPerformanceCounter(ref count1);
      count = count1 - count;
      result = (double)(count) / (double)freq;
      Console.WriteLine("QueryPerformanceCounter耗时: {0} 秒", result);
    }
    也可以使用委托对其进行封装,方便调用:
    /// <summary>
       /// 计算时间
       /// </summary>
       /// <param name="function">要被执行的代码</param>
       /// <returns>执行这一段代码耗时,单位:毫秒</returns>
       public static string Stopwatch(Action function)
       {
           System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
           sw.Start();
     
           //开始执行业务代码
           function();
     
           sw.Stop();
           TimeSpan timeSpan = sw.Elapsed;
     
           return (timeSpan.TotalMilliseconds) + "ms";
       }
    

      

  • 相关阅读:
    C# 删除文件夹
    XML操作类
    C# winform 安装程序打包(自定义操作)
    复制Datatable结构和数据,并按条件进行筛选
    Sql_Case_When
    C# using 与Trycatchfinally的区别和用法
    Winform datagridview Excel 导入导出
    矩阵树定理学习笔记
    minmax容斥笔记及例题
    平衡树学习笔记
  • 原文地址:https://www.cnblogs.com/ZaraNet/p/9434052.html
Copyright © 2011-2022 走看看