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

  • 相关阅读:
    Django项目总结:项目主页
    变量、常量和作用域
    mysql数据库连接
    多线程下的单例模式
    JVM笔记--类文件结构
    Java初始化与清理
    多线程设计模式-单线程执行模式
    Java语言实现冒泡排序算法
    继承父类并实现多个接口_hehe.base.10.3
    Servlet | Request 对象获取请求参数的通用方式
  • 原文地址:https://www.cnblogs.com/hgy413/p/3693575.html
Copyright © 2011-2022 走看看