1. 程式人生 > >C#下的時間測試(用於計算方法執行時間)

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

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 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 }

技術分享圖片

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