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]+" ");
                }
            }
        }
    }

    程序输出结果为:

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

  • 相关阅读:
    备忘
    跨域问题思考
    个人理解的Lambda表达式的演化过程
    MySql 事务与锁
    Python连接MySQL
    将python虚拟环境移植到无法联网的电脑
    PyQt5+QtDesigner+fbs+python创建桌面程序
    Pycharm+Anaconda安装及配置
    一个极好的JavaScript学习网址
    Python GUI工具Tkinter以及拖拉工具Page安装
  • 原文地址:https://www.cnblogs.com/mcgrady/p/2594004.html
Copyright © 2011-2022 走看看