ktimer.h

来自「一个基于VC++的串口通讯的 小程序」· C头文件 代码 · 共 66 行

H
66
字号
//Timer.h
#pragma once


class KTimer 
{
private:

    unsigned __int64 m_startCycle;

    static inline unsigned __int64 GetCycleCount(void)
    {
        __asm _emit 0x0F 
        __asm _emit 0x31 
    }


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;
    }
}; 



/*

// GDISpeed.cpp
#define STRICT 
#define WIN32_LEAN_AND_MEAN

#include <windows.h>
#include <tchar.h>

#include "timer.h"

// ......
KTimer timer;
TCHAR mess[128];

timer.Start();
sleep(1000);
unsigned CPUspeed10 = (unsigned)(timer.Stop()/100000);


%d.%d mhz\nOverhead %d clock cycles\n,
CPUspeed10/10, CPUspeed10%10, (unsigned)timer.m_overHead;

//*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?