欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何精准的获得时钟频率计算耗时——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;
}

相关标签: 时间处理