C#下的時間測試(用於計算方法執行時間)

 1 public class Timing
 2     {
 3         private TimeSpan m_StartTime;
 4 
 5         private TimeSpan duringTime;
 6 
 7         public Timing()    //構造函數用於初始化開始時間和持續時間
 8         {
 9             this.m_StartTime = new TimeSpan(0);   //初始化的時候設置時間爲00:00:00
10             this.duringTime = new TimeSpan(0);
11         }
12 
13         public void StartTime()
14         {
15             GC.Collect();                        //爲了防止程序運行的時候有無用單元干擾提早進行GC收集
16             GC.WaitForPendingFinalizers();       //儲存在堆中全部對象在最後都會調用finalizer方法,可是沒法肯定finalizer是否執行,全部要等待finalizer都運行完畢進行後面的步驟(此方法執行的時候線程會掛起)
17             m_StartTime = Process.GetCurrentProcess().Threads[0].UserProcessorTime;  //獲得當前進程的時間
18         }
19 
20         public void StopTime()
21         {
22             duringTime = Process.GetCurrentProcess().Threads[0].UserProcessorTime.Subtract(m_StartTime);
23             //獲得當前進程的時間過了多少時間即當前時間-開始(m_StartTime)的時間
24         }
25 
26         public TimeSpan Result()
27         {
28             return duringTime;      //返回運行時間
29         }
30     }
31     class Program
32     {
33         static void Main(string[] args)
34         {
35 
36             int[] array = new int[10000]; //進行測試的時候初始化了一個容量爲10000的int數組
37             Timing timing = new Timing(); //初始化計算的類
38             timing.StartTime();           //開始計算時間
39             Add(array);                   //數組每一個都添加當前序號值的數
40             DisplayCount(array);          //輸出每一個數
41             timing.StopTime();            //中止計算時間
42             Console.WriteLine(timing.Result()); //輸出計算的時間
43             Console.ReadKey();            //暫停程序
44         }
45 
46         public static void Add(int[] arr)
47         {
48             for (int i = 0; i < arr.Length; i++)
49             {
50                 arr[i] = i;
51             }
52         }
53         public static void DisplayCount(int[] arr)
54         {
55             for (int i = 0; i < arr.Length; i++)
56             {
57                 Console.WriteLine(arr[i]);
58             }
59         }
60     }

相關文章
相關標籤/搜索