C#下的時間測試(用於計算方法執行時間)
阿新 • • 發佈:2019-05-07
image sub [] 圖片 display nbsp mes during code
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 publicTimeSpan 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 }
C#下的時間測試(用於計算方法執行時間)