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

直接上代码:

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

[csharp]  view plain  copy
  1. </pre><pre name="code" class="csharp">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. }  
[csharp]  view plain  copy
  1. 第二种方法   
[csharp]  view plain  copy
  1. static void SubTest()  
  2. {  
  3. <span style="white-space:pre">    </span>Stopwatch sw = new Stopwatch();  
  4. <span style="white-space:pre">    </span>sw.Start();  
  5.     
  6. <span style="white-space:pre">    </span>//耗时巨大的代码  
  7. <span style="white-space:pre">    </span>  
  8. <span style="white-space:pre">    </span>sw.Stop();  
  9. <span style="white-space:pre">    </span>TimeSpan ts2 = sw.Elapsed;  
  10. <span style="white-space:pre">    </span>Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);  
  11. }  
[csharp]  view plain  copy
  1. 第三种方法  
[csharp]  view plain  copy
  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. <span style="white-space:pre">    </span>long count = 0;  
  8. <span style="white-space:pre">    </span>long count1 = 0;  
  9. <span style="white-space:pre">    </span>long freq = 0;  
  10. <span style="white-space:pre">    </span>double result = 0;  
  11. <span style="white-space:pre">    </span>QueryPerformanceFrequency(ref freq);  
  12. <span style="white-space:pre">    </span>QueryPerformanceCounter(ref count);     
  13.   
  14.   
  15. <span style="white-space:pre">    </span>//耗时巨大的代码  
  16. <span style="white-space:pre">    </span>  
  17. <span style="white-space:pre">    </span>QueryPerformanceCounter(ref count1);  
  18. <span style="white-space:pre">    </span>count = count1 - count;  
  19. <span style="white-space:pre">    </span>result = (double)(count) / (double)freq;  
  20. <span style="white-space:pre">    </span>Console.WriteLine("QueryPerformanceCounter耗时: {0} 秒", result);  
  21. }  

猜你喜欢

转载自blog.csdn.net/smilepasta035/article/details/78298065