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

  • 相关阅读:
    Linux下的内核测试工具——perf使用简介
    浅谈C++中指针和引用的区别
    成为Java顶尖程序员 ,看这11本书就够了
    spring注解详解
    Spring AOP详解和实现方式
    Spring IoC中各个注解的理解和使用
    NameNode配置HA后及其反过程Hive路径不正确的问题解决
    [maven] 常用插件解析
    Saiku3.15去除License与主界面
    saiku系列文章
  • 原文地址:https://www.cnblogs.com/kliine/p/10822995.html
Copyright © 2020-2023  润新知