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

 

亲测有效~   直接代码:

第一种方法利用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

版权声明:本文为博主原创文章,转载请附上博文链接!

 

相关文章