zoukankan      html  css  js  c++  java
  • 重温数据结构与算法(1) 构建自己的时间测试类

      本文总结了使用基准法测试来测试运行一个程序所使用的时间,或者说是测试程序中数据结构和算法的性能。
      代码如下:

    namespace TimingTestDemo1
    {
        //自定义计时类
        public class Timing
        { 
            //私有字段
            TimeSpan duration;
    
            //构造函数,初始化字段
            public Timing()
            {
                duration = new TimeSpan(0);
            }
    
            //开始计时
            public void StartTime()
            {
                GC.Collect();//强制执行垃圾回收
                GC.WaitForPendingFinalizers();//挂起当前线程,直到处理终结器队列的线程清空该队列为止
            }
    
            //结束计时
            public void StopTime()
            {
                duration = Process.GetCurrentProcess().TotalProcessorTime;
            }
    
            public TimeSpan Result()
            {
                return duration;
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                //声明和初始化数组
                int[] nums=new int[100000];
                BuildArray(nums);
    
                Timing tObj = new Timing();
    
                //计时开始
                tObj.StartTime();
    
                DisplayNums(nums);
    
                //计时结束
                tObj.StopTime();
    
                Console.WriteLine("\nExpend time: "+tObj.Result().TotalSeconds+"s");
                Console.ReadKey();
            }
    
            private static void BuildArray(int[] arr)
            {
                for (int i = 0; i <= arr.Length - 1; i++)
                {
                    arr[i] = i;
                }
            }
    
            private static void DisplayNums(int[] arr)
            {
                for (int i = 0; i <= arr.GetUpperBound(0); i++)
                {
                    Console.Write(arr[i]+" ");
                }
            }
        }
    }

    程序输出结果为:

    以上就是自己总结的程序性能测试类,可以把它用在后续的各种数据结构与算法中。

  • 相关阅读:
    当Django模型迁移时,报No migrations to apply 问题时
    django--各个文件的含义
    django--创建项目
    1013. Battle Over Cities (25)
    1011. World Cup Betting (20)
    1009. Product of Polynomials (25)
    1007. Maximum Subsequence Sum (25)
    1006. Sign In and Sign Out (25)
    1008. Elevator (20)
    1004. Counting Leaves (30)
  • 原文地址:https://www.cnblogs.com/mcgrady/p/2594004.html
Copyright © 2011-2022 走看看