C#计算一段程序运行时间的三种方法

第一种方法利用System.DateTime.Now

  1. static void SubTest()  
  2. {  
  3.     DateTime beforDT = System.DateTime.Now;    
  4.   
  5.     //耗时巨大的代码  
  6.       
  7.     DateTime afterDT = System.DateTime.Now;  
  8.     TimeSpan ts = afterDT.Subtract(beforDT);  
  9.     Console.WriteLine("DateTime总共花费{0}ms.", ts.TotalMilliseconds);  
  10. }  

第二种用Stopwatch类(System.Diagnostics)

  1. static void SubTest()  
  2. {  
  3.     Stopwatch sw = new Stopwatch();  
  4.     sw.Start();  
  5.     
  6.     //耗时巨大的代码  
  7.       
  8.     sw.Stop();  
  9.     TimeSpan ts2 = sw.Elapsed;  
  10.     Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);  
  11. }  

第三种用API实现:

  1. [System.Runtime.InteropServices.DllImport("Kernel32.dll")]  
  2. static extern bool QueryPerformanceCounter(ref long count);  
  3. [System.Runtime.InteropServices.DllImport("Kernel32.dll")]  
  4. static extern bool QueryPerformanceFrequency(ref long count);     
  5. static void SubTest()  
  6. {  
  7.     long count = 0;  
  8.     long count1 = 0;  
  9.     long freq = 0;  
  10.     double result = 0;  
  11.     QueryPerformanceFrequency(ref freq);  
  12.     QueryPerformanceCounter(ref count);     
  13.   
  14.     //耗时巨大的代码  
  15.       
  16.     QueryPerformanceCounter(ref count1);  
  17.     count = count1 - count;  
  18.     result = (double)(count) / (double)freq;  
  19.     Console.WriteLine("QueryPerformanceCounter耗时: {0} 秒", result);  
  20. }  
posted @ 2017-01-26 18:52  Z&K  阅读(34668)  评论(0编辑  收藏  举报