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);
  • 相关阅读:
    api.js
    vue开关
    vue 单选框自定义
    vue 笔记
    Flutter 检测网络连接 监听网络变化
    lutter 调用原生硬件 Api 实现扫码
    flutter 支付宝支付流程以及用 Flutter 在 Android Ios 中实现支付宝支付
    js+css 动效+1的效果
    Vue -- filters 过滤器、倒计时效果
    移动端如何实现两行点点点?
  • 原文地址:https://www.cnblogs.com/rogation/p/3289198.html
Copyright © 2011-2022 走看看