当前位置: 代码迷 >> 综合 >> 如何精准的获得时钟频率计算耗时——QueryPerformanceFrequency
  详细解决方案

如何精准的获得时钟频率计算耗时——QueryPerformanceFrequency

热度:69   发布时间:2024-01-24 07:03:41.0

时间处理

在处理一些获得时间的问题时,可以用clock()函数简单的获得时钟,但是进度往往是不够的,这个时候可以用 QueryPerformanceFrequency(&frequency)获得更精确的时钟

1.clock(),字面精度1ms,实际精度是操作系统的时间片,windows下单核10ms,双核15ms
2.QueryPerformenceCounter,字面精度100ns(0.1us),实际精度100us左右
对于毫秒级 用2个都可以,对于us级建议用QueryPerformenceCounter
下面介绍QueryPerformenceCounter的快速用法:

#include <iostream>
#include <windows.h>
using namespace std;
LARGE_INTEGER frequency;
void function()
{cout<<"cost time=";
}
int main()
{double dff,begin_,_end,time;QueryPerformanceFrequency(&frequency);//获得时钟频率dff=(double)frequency.QuadPart;//取得频率*/QueryPerformanceCounter(&frequency);begin_=frequency.QuadPart;//获得初始值function();QueryPerformanceCounter(&frequency);_end=frequency.QuadPart;//获得终止值time=(_end-begin_)/dff;//差值除以频率得到时间cout<<time<<"s"<<endl;
}