• 打印函数时间


     自己随手写的,方便测试绘制代码用。
    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

  • 相关阅读:
    调度算法的评价指标
    进程调度的时机 切换与过程调度方式
    处理机调度 概念和层次
    线程概念 多线程模型
    进程通信
    进程的状态与转换
    进程的定义
    系统调用
    面试题3
    第2章Arduino UNO板结构说明
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693575.html
Copyright © 2020-2023  润新知