zoukankan      html  css  js  c++  java
  • linux下定时器耗时研究

    #include <time.h>
    #include <chrono>
    #include <unistd.h>
    #include <iostream>
    
    using namespace std;
    
    int main() {
        int sum = 0;
        auto t = std::chrono::high_resolution_clock::now();
        time_t now = std::chrono::duration_cast<std::chrono::nanoseconds>(t.time_since_epoch()).count();
    
        struct timespec req, rem;
        req = {0, 1};
    
        // 空跑这个for循环,最少耗时2200多纳秒
        for (int i=0; i<1000; i++) {
            // usleep(1); // 大约花费57微秒:间隔1微秒,处理中断花费50多微秒,还会受其他进程干扰。
            // usleep(100);  // 大约耗时163微秒
    
            // nanosleep(&req, &rem); // 最小耗时和usleep差不多,也是至少需要56微秒
            
            // t = std::chrono::high_resolution_clock::now();
            // time_t pre = std::chrono::duration_cast<std::chrono::nanoseconds>(t.time_since_epoch()).count();
            // sum += pre - now;
            // cout<<sum<<endl;
            // exit(0);
    
            // t = std::chrono::high_resolution_clock::now();
            // time_t pre = std::chrono::duration_cast<std::chrono::microseconds>(t.time_since_epoch()).count(); // 这两句取时间的语句加起来40纳秒
        }
        t = std::chrono::high_resolution_clock::now();
        time_t pre = std::chrono::duration_cast<std::chrono::nanoseconds>(t.time_since_epoch()).count();
        sum += pre - now;
        cout<<sum<<endl;
    }
  • 相关阅读:
    java常见异常总结
    敏捷开发的七种主流方法
    转:一位10年Java工作经验的架构师聊Java和工作经验
    Map遍历
    Mybatis中的模糊查询
    Mybatis中动态SQL多条件查询
    J2EE,LAMP和ASP.NET三者比较
    关于加密
    Md5Hash的测试
    CentOS7 修改默认时区为 北京时间
  • 原文地址:https://www.cnblogs.com/starRebel/p/14057386.html
Copyright © 2011-2022 走看看