• VC中监测函数运行时间(一)—分钟,秒,毫秒


      1 //myTimer.h
      2 
      3 //  [10/16/2013 Duan Yihao]
      4 
      5 #pragma once
      6 
      7 #include "StdAfx.h"
      8 
      9 //////////////////////////////////////////////////////////////////////////
     10 class myTimer
     11 {
     12 
     13 public:
     14     myTimer(void);
     15     ~myTimer(void);
     16 
     17 public:
     18     void start(void);
     19     void end(void);
     20 
     21     void getRunTime(float &minute,float &second,float &millSecond);
     22 
     23 private:
     24 
     25     SYSTEMTIME stStar;
     26     SYSTEMTIME stEnd;
     27 
     28     //
     29     float m_minute;
     30     float m_second;
     31     float m_millSecond;
     32 
     33 };
     34 
     35 
     36 
     37 
     38 //////////////////////////////////////////////////////////////////////////
     39 //myTimer.cpp
     40 
     41 myTimer::myTimer(void)
     42 {
     43 
     44     m_minute=0.0;
     45     m_second=0.0;
     46     m_millSecond=0.0;
     47 }
     48 
     49 myTimer::~myTimer(void)
     50 {
     51 }
     52 
     53 void myTimer::start(void)
     54 {
     55 
     56     GetLocalTime(&stStar);//获取算法处理前,系统时间
     57 
     58 }
     59 
     60 void myTimer::end(void)
     61 {
     62 
     63     //
     64     SYSTEMTIME st2;
     65     GetLocalTime(&stEnd);//获取算法结束时系统时间
     66     float tm1,tm2;
     67     float ts1,ts2;
     68     float tms1,tms2;
     69 
     70     tm1=stStar.wMinute;
     71     tm2=stEnd.wMinute;//
     72 
     73     ts1=stStar.wSecond;
     74     ts2=stEnd.wSecond;//
     75 
     76     tms1=stStar.wMilliseconds;
     77     tms2=stEnd.wMilliseconds;//毫秒
     78 
     79     if (tms2<tms1)
     80     {
     81         tms2+=1000;
     82         ts2-=1;
     83     }
     84     if (ts2<ts1)
     85     {
     86         ts2+=60;
     87         tm2-=1;
     88     }
     89     if (tm2<tm1)
     90     {
     91         tm2+=60;
     92     }
     93 
     94     m_minute=tm2-tm1;
     95     m_second=ts2-ts1;
     96     m_millSecond=tms2-tms1;
     97 
     98     //CString time;
     99     //time.Format(_T("run time consume:%f min,%f s,%f ms"),tm2-tm1,ts2-ts1,tms2-tms1);
    100     //AfxMessageBox(time);
    101 
    102 }
    103 
    104 void myTimer::getRunTime(float &minute,float &second,float &millSecond)
    105 {
    106     minute=m_minute;
    107     second=m_second;
    108     millSecond=m_millSecond;
    109 }
    110 
    111 
    112 /*
    113 //////////////////////////////////////////////////////////////////////////
    114 //mfc下测试举例:
    115 
    116 void CtestMFCView::OnTest()
    117 {
    118 
    119     // TODO: 在此添加命令处理程序代码
    120     //测试例子
    121 
    122     //计时开始
    123     myTimer t;
    124     t.start();
    125 
    126     //------------------------------------------------------------------------------
    127     //>>>
    128     for(int i = 0; i < 10; i++)
    129     {
    130     int n = i;
    131     for(int i = 0; i < 100000; i++)
    132     {
    133     int n = i;
    134     }
    135     }
    136     //<<<
    137     //------------------------------------------------------------------------------
    138 
    139     //计时结束
    140     t.end();
    141 
    142     //耗时显示
    143     float m,s,ms;
    144     t.getRunTime(m,s,ms);
    145 
    146     CString time;
    147     time.Format(_T("run time consume:%f min, %f s, %f ms"),m,s,ms);
    148     AfxMessageBox(time);
    149 
    150 }
    151 
    152 */
  • 相关阅读:
    django-搭建BBS关键点总结
    关于django中input标签中file类型以及开路由
    Bzoj1115 石子游戏Kam
    HDU1907 John
    HDU2509 Be the Winner
    洛谷P1082 同余方程
    POJ1065 Area
    Vijos1889 天真的因数分解
    Bzoj2440 完全平方数
    Bzoj2705 Longge的问题
  • 原文地址:https://www.cnblogs.com/vranger/p/3371746.html
Copyright © 2020-2023  润新知