zoukankan      html  css  js  c++  java
  • 打印函数时间

     自己随手写的,方便测试绘制代码用。
    class CFunTime
    {
    public:
        CFunTime()
    	{
    		TimeStart=GetTickCount();
    	}
    	~CFunTime()
    	{
            TimeEnd=GetTickCount();
    		TRACE("time:%d\n", TimeEnd-TimeStart);
    	}
    
    private:
    	DWORD TimeStart;
    	DWORD TimeEnd;
    };

    这个函数只精确到55ms,1个tick就是55ms。

    第二种:

    class CFunTime
    {
    public:
        CFunTime()
     {
      QueryPerformanceCounter(&TimeStart);
     }
     ~CFunTime()
     {
           QueryPerformanceCounter(&TimeEnd);
      TRACE("time:%d\n", TimeEnd.QuadPart-TimeStart.QuadPart);
     }
    
    private:
     LARGE_INTEGER TimeStart;
     LARGE_INTEGER TimeEnd;
    };
    
    


    第三种方法:

    #include "Mmsystem.h"
    #pragma comment(lib, "Winmm.lib")
    class CFunTime
    {
    public:
        CFunTime()
    	{
    		TimeStart = timeGetTime();
    	}
    	~CFunTime()
    	{
    		TimeEnd = timeGetTime();
    		TRACE("time:%d\n", TimeEnd-TimeStart);
    	}
    
    private:
    	DWORD TimeStart;
    	DWORD TimeEnd;
    };
    

    timeGetTime()基本等于GetTickCount(),但是精度更高

    第四种方法:

    #pragma warning(disable : 4035)
    
    inline unsigned __int64 GetCycleCount(void)
    {
    	_asm    _emit 0x0F
    	_asm    _emit 0x31
    }
    
    class KTimer
    {
    	unsigned __int64  m_startcycle;
    
    public:
    
    	unsigned __int64  m_overhead;
    
    	KTimer(void)
    	{
    		m_overhead = 0;
    		Start();
    		m_overhead = Stop();
    	}
    
    	void Start(void)
    	{
    		m_startcycle = GetCycleCount();
    	}
    
    	unsigned __int64 Stop(void)
    	{
    		return GetCycleCount()-m_startcycle-m_overhead;
    	}
    };


    windows图形编程第15

  • 相关阅读:
    几种开源工作流引擎的简单比较(转)
    ExecuteScalar
    机房重构---我们“重构”出了什么?
    薏米红豆粥功效及做法介绍
    Mean Shift具体介绍
    linux fork函数浅析
    html的下拉框的几个基本使用方法
    Readprocessmemory使用方法
    配置Log4j(非常具体)
    【Linux】linux经常使用基本命令
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693575.html
Copyright © 2011-2022 走看看