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     }
复制代码

 

posted @   编程世界里晃荡  阅读(2545)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示