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     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM