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;
    }
  • 相关阅读:
    C语言I博客作业02
    第一次C语言作业
    C语言I博客作业02
    网页常用分享代码
    js生成验证码并验证
    js时间格式的转换
    Git 常用命令
    ASP.NET MVC中使用事务写法
    数据库游标导入数据
    js截取所需字符串长度
  • 原文地址:https://www.cnblogs.com/starRebel/p/14057386.html
Copyright © 2011-2022 走看看