zoukankan      html  css  js  c++  java
  • VC中监测程序运行时间(二)-毫秒级

      1 /*
      2 *    微秒级计时器,用来统计程序运行时间 
      3 *   http://blog.csdn.net/hoya5121/article/details/3778487#comments
      4 *   //整理 [10/16/2013 Duan Yihao]
      5 */
      6 
      7 #pragma once
      8 
      9 #include "stdafx.h"
     10 
     11 
     12 //////////////////////////////////////////////////////////////////////////
     13 class timer  
     14 {
     15 public:
     16     timer();
     17     ~timer();
     18 
     19     void start(void);
     20 
     21     void end(void);   
     22 
     23     DWORD getTime(void) const;
     24 
     25 private:
     26     LARGE_INTEGER m_i64CPUFreq; 
     27     LARGE_INTEGER m_i64Begin;
     28     LARGE_INTEGER m_i64End;
     29     void reset(void);
     30 };
     31 
     32 
     33 //////////////////////////////////////////////////////////////////////////
     34 timer::timer()
     35 {
     36     QueryPerformanceFrequency(&m_i64CPUFreq);
     37 }
     38 
     39 timer::~timer()
     40 {
     41 
     42 }
     43 
     44 void timer::start(void)
     45 {
     46     reset();
     47     QueryPerformanceCounter(&m_i64Begin);
     48 }
     49 
     50 void timer::end(void)
     51 {
     52     QueryPerformanceCounter(&m_i64End);
     53 }
     54 
     55 DWORD timer::getTime(void) const
     56 {
     57     DWORD dwTotalMicrosecond = 0;
     58     LARGE_INTEGER i64TickCount;
     59     i64TickCount.QuadPart = m_i64End.QuadPart - m_i64Begin.QuadPart;
     60     dwTotalMicrosecond = (DWORD) (i64TickCount.QuadPart * 1000000 / m_i64CPUFreq.QuadPart);
     61 
     62     return dwTotalMicrosecond;
     63 }
     64 
     65 void timer::reset(void)
     66 {
     67     m_i64Begin = m_i64End;
     68 }
     69 
     70 
     71 /*
     72 //////////////////////////////////////////////////////////////////////////
     73 //MFC下使用举例:
     74 
     75 void CtestMFCView::OnTest()
     76 {
     77 
     78     // TODO: 在此添加命令处理程序代码
     79     //测试例子
     80 
     81     //计时开始
     82     timer t;
     83     t.start();
     84 
     85     //运算过程
     86 
     87         for(int i = 0; i < 10; i++)
     88         {
     89             int n = i;
     90             for(int i = 0; i < 10000; i++)
     91             {
     92                 int n = i;
     93             }
     94         }
     95 
     96     //计时结束
     97     t.end();
     98 
     99     //输出运行时间
    100     CString s;
    101     s.Format(_T("%u ms"), t.getTime());
    102     AfxMessageBox(s);
    103 }
    104 
    105 */
  • 相关阅读:
    美化单选按钮
    url的处理
    时间戳处理
    模板渲染引擎手册
    Web前端工具——Live Reload – Chrome扩展
    属性(Properties)和字段在C#中的关系
    MVC3中的Model
    使用System.Web.Mvc.Ajax
    javascript之DOM操作
    Javascript之BOM(window对象)
  • 原文地址:https://www.cnblogs.com/vranger/p/3372083.html
Copyright © 2011-2022 走看看