如何精准的获得时钟频率计算耗时——QueryPerformanceFrequency
程序员文章站
2022-05-29 23:45:47
...
时间处理
在处理一些获得时间的问题时,可以用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;
}
下一篇: 红黑树实现源码(C++)