C#下的时间测试(用于计算方法执行时间)

Posted kliine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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     }

技术图片

 

以上是关于C#下的时间测试(用于计算方法执行时间)的主要内容,如果未能解决你的问题,请参考以下文章

是否可以动态编译和执行 C# 代码片段?

Sleep() 方法后的代码片段没有被执行

使用从循环内的代码片段中提取的函数避免代码冗余/计算开销

XSS:如何从 C# 中的字符串中删除 JS 片段?

在c#中计算执行前存储过程的执行时间

C#代码自动测试