#include <windows.h> LARGE_INTEGER m_freq,m_timeStart,m_timeNow; QueryPerformanceFrequency(&m_freq); QueryPerformanceCounter(&m_timeStart); //double time = (double)m_timeStart.QuadPart / m_freq.QuadPart; //ui.elapsedTimeLabel->setText(QString::number(time)); Sleep(1000); QueryPerformanceCounter(&m_timeNow); double elapsedTime = (double)(m_timeNow.QuadPart - m_timeStart.QuadPart) / m_freq.QuadPart; ui.elapsedTimeLabel->setText(QString::number(elapsedTime));
LARGE_INTEGER为64位整型数,结构如下
typedef union _LARGE_INTEGER { struct { DWORD LowPart ;// 4字节整型数 LONG HighPart;// 4字节整型数 }; LONGLONG QuadPart ;// 8字节整型数 }LARGE_INTEGER ;
QueryPerformanceCounter()返回高精度计数器的值,精确到微秒;
QueryPerformanceFrequency()计数频率,每秒滴答次数;
ElapsedTime=(nStopCounter.QuadPart-nStartCounter.QuadPart)/frequency.QuadPart //计算运行时间(秒)
文章评论