美文网首页
高精度计时

高精度计时

作者: 不会code的程序猿 | 来源:发表于2017-02-18 13:42 被阅读52次

Windows

①计时统计前先调用QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率。
②在需要计时的事件发生前和发生之后分别QueryPerformanceCounter(),利用两次获得的计数之差和时钟频率,就可以计算出事件经历的精确时间(精度可以达到微秒级别)。

#include <windows.h>  
#include <iostream>  

int main()
{
    LARGE_INTEGER timeStart;    //开始时间  
    LARGE_INTEGER timeEnd;      //结束时间  

    LARGE_INTEGER frequency;    //计时器频率  
    QueryPerformanceFrequency(&frequency);
    double quadpart = (double)frequency.QuadPart;//计时器频率  

    QueryPerformanceCounter(&timeStart);
    Sleep(1000);//延时一秒  
    QueryPerformanceCounter(&timeEnd);

    //得到两个时间的耗时  
    double elapsed1= (timeEnd.QuadPart - timeStart.QuadPart) / quadpart;
    std::cout << elapsed1 <<"s"<< std::endl;//单位为秒,精度为微秒(1000000/cpu主频)  
    double elapsed2 = (timeEnd.QuadPart - timeStart.QuadPart)*1000 / quadpart;
    std::cout << elapsed2 <<"ms"<< std::endl;//单位为秒,精度为微秒(1000000/cpu主频)  
    system("pause");
    return 0;
}

Linux

struct  timeval{
       long  tv_sec;/*秒*/
       long  tv_usec;/*微妙*/

};

#include <stdio.h>
#include <sys/time.h>

int main() {
    struct timeval start, end;
    gettimeofday( &start, NULL );
    sleep(3);
    gettimeofday( &end, NULL );
    int timeuse = 1000000 * ( end.tv_sec - start.tv_sec ) + end.tv_usec -start.tv_usec;
    printf("time: %d 微秒\n", timeuse);
    return 0;
}

gettimeofday能得到微秒数,比毫秒还要更精确。

相关文章

  • 高精度计时

    Windows ①计时统计前先调用QueryPerformanceFrequency()函数获得机器内部计时器的时...

  • 高精度(加法&乘法&减法)

    高精度加法: 高精度乘法: 高精度减法:

  • nodejs高精度计时(纳秒)

    返回Array包含当前高分辨率实时的元组,在[秒,纳秒] node v10.7.0以上 https://nodej...

  • GCD定时器

    GCD定时器会自己开启一条子线程,子线程也会自己开启runloop,自己创建管理,所以需要高精度计时时,用GCD计...

  • PHP算术及精度计算

    一、高精度算术运算符 bcadd 将两个高精度数字相加bccomp 比较两个高精度数字,返...

  • 几个高精度模板

    模板来自洛谷及Acwing:Acwing洛谷 后续增加注释以及相关代码改进 高精度加法 高精度减法 高精度乘法 高...

  • php高精度计算

    bcadd — 将两个高精度数字相加 bcdiv — 将两个高精度数字相除 bcmod — 求高精度数字余数 bc...

  • sicily_1029 Rabbit

    标签: sicily 高精度计算 题目链接: http://soj.sysu.edu.cn/1029 思路 高精度...

  • Lesson 2:高精度地图

    从 Apollo 起步-Lesson 2:高精度地图 高精度地图 导航地图(Navigation Map)VS高精...

  • 关于高精度地图定义的探讨

    高精度地图是自动驾驶/无人驾驶的重要组成,那究竟什么是高精度地图? 网上找了两个关于高精度地图的定义,如下: 定义...

网友评论

      本文标题:高精度计时

      本文链接:https://www.haomeiwen.com/subject/faeputtx.html