1. 程式人生 > >C#計算一段程序運行時間的三種方法

C#計算一段程序運行時間的三種方法

stop open isp shu sdn clas ref phone not

親測有效~ 直接代碼:
第一種方法利用System.DateTime.Now 技術分享圖片
 1         public static void SubTest()
 2         {
 3             DateTime beforeDT = System.DateTime.Now;
 4             int[] a = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
 5             //Shuffle(a) is the function you want to test.
6 Shuffle(a); 7 DateTime afterDT = System.DateTime.Now; 8 TimeSpan ts = afterDT.Subtract(beforeDT); 9 Console.WriteLine("DateTime costed for Shuffle function is: {0}ms",ts.TotalMilliseconds); 10 }
View Code

第二種用Stopwatch類(System.Diagnostics)

 1         public static void SubTest()
 2         {
 3             Stopwatch sw = new Stopwatch();
 4             sw.Start();
 5             //Shuffle(a) is the function you want to test.
 6             int[] a = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
}; 7 Shuffle(a); 8 sw.Stop(); 9 TimeSpan ts = sw.Elapsed; 10 Console.WriteLine("DateTime costed for Shuffle function is: {0}ms", ts.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         public 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             //Shuffle(a) is the function you want to test.
14             int[] a = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
15             Shuffle(a);
16             QueryPerformanceCounter(ref count1);
17             count = count1 - count;
18             result = (double)(count) / (double)freq;
19             //Note:The result is counted by second.
20             Console.WriteLine("DateTime costed for Shuffle function is: {0} s", result);
21         }
View Code

---------------------

作者:傳說中的汽水槍
來源:CSDN
原文:https://blog.csdn.net/xzjxylophone/article/details/6832160
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

C#計算一段程序運行時間的三種方法