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);
  • 相关阅读:
    eclipse 批量 查询 替换
    Hibernate包及相关工具包下载地址
    逻辑运算符&& 用法解释
    主流数据库查找前几条数据的区别
    .propertie文件注释
    java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误
    数据库的名称尽量要以英文开头,如果全部输数字的话可能会出错的
    **和*的区别
    puTTY与SecureCRT的比较
    Windows下Redis的安装使用
  • 原文地址:https://www.cnblogs.com/rogation/p/3289198.html
Copyright © 2011-2022 走看看