zoukankan      html  css  js  c++  java
  • 计算方法或模块的执行时间

    /// <summary>
    /// 计算执行时间的类
    /// </summary>
    public class QueryPerformance
    {
        [DllImport("Kernel32.dll")]
        private static extern bool QueryPerformanceCounter(out long performanceCount);
    
        [DllImport("Kernel32.dll")]
        private static extern bool QueryPerformanceFrequency(out long frequency);
    
        private long begintTime = 0;//开始时间  
    
        private long endTime = 0;//结束时间  
    
        private long frequency = 0;//处理器频率  
        /// <summary>
        /// 开始时间
        /// </summary>
        public long BegintTime
        {
            get { return begintTime; }
        }
        /// <summary>
        /// 结束时间
        /// </summary>
        public long EndTime
        {
            get { return endTime; }
        }
        /// <summary>
        /// CPU频率
        /// </summary>
        public long Frequency
        {
            get { return frequency; }
        }
        /// <summary>
        /// 构造函数,获取CPU频率
        /// </summary>
        public QueryPerformance()
        {
            QueryPerformanceFrequency(out frequency);//获取频率  
        }
        /// <summary>
        /// 开始计算
        /// </summary>
        public void Start()
        {
            QueryPerformanceCounter(out begintTime);
        }
        /// <summary>
        /// 停止计时
        /// </summary>
        /// <param name="showRecord">是否输出计时</param>
        /// <returns>计时</returns>
        public double Stop(bool showRecord)
        {
            QueryPerformanceCounter(out endTime);
    
            if (showRecord)
            {
                return TastTime;
            }
            return 0.0D;
        }
        /// <summary>
        /// 花费的时间
        /// </summary>
        public double TastTime//花费时间:单位S  
        {
            get
            {
                if (frequency > 0)
                    return (double)(endTime - begintTime) / frequency;
                else
                    return 0;
            }
        }
    }

    接下来是使用方法:

    QueryPerformance queryPerformance = new QueryPerformance();
    queryPerformance.Start();  
    
    //需要知道执行时间的模块
    
    double time = queryPerformance.Stop(true);
  • 相关阅读:
    【白嫖】0002 11款 Procreate 皮肤纹理笔刷
    30款 Procreate 书法笔刷 你值得拥有
    PaddleHub(3)
    PaddleHub(2)
    关于大学学习的小思考
    PaddleHub(1)
    OO TA——一次非同寻常的体验
    Vue实现增加删除检索数据
    闲言碎语
    析 合 树 详 解
  • 原文地址:https://www.cnblogs.com/rogation/p/3289198.html
Copyright © 2011-2022 走看看