日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ chrono 库中的 steady_clock 、 system_clock、high_resolution_clock区别

發布時間:2023/12/15 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ chrono 库中的 steady_clock 、 system_clock、high_resolution_clock区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++11 中提供了一個計時的標準庫?<chrono>;
里面有三種時鐘 clock: steady_clock, system_clock 和 high_resolution_clock;

區別

  • steady_clock 是單調的時鐘,相當于教練手中的秒表;只會增長,適合用于記錄程序耗時
  • system_clock 是系統的時鐘;因為系統的時鐘可以修改;甚至可以網絡對時; 所以用系統時間計算時間差可能不準。
  • high_resolution_clock 是當前系統能夠提供的最高精度的時鐘;它也是不可以修改的。相當于 steady_clock 的高精度版本。

在 參考鏈接[2] 中提供了代碼,可以查看自己的機器上三種時鐘的時間精度。

// copied from http://www.informit.com/articles/article.aspx?p=1881386&seqNum=2; // Author: Nicolai M. Josuttis#include <chrono> #include <iostream> #include <iomanip>template <typename C> void printClockData () {using namespace std;cout << "- precision: ";// if time unit is less or equal one millisecondtypedef typename C::period P;// type of time unitif (ratio_less_equal<P,milli>::value) {// convert to and print as millisecondstypedef typename ratio_multiply<P,kilo>::type TT;cout << fixed << double(TT::num)/TT::den<< " milliseconds" << endl;}else {// print as secondscout << fixed << double(P::num)/P::den << " seconds" << endl;}cout << "- is_steady: " << boolalpha << C::is_steady << endl; }int main() {std::cout << "system_clock: " << std::endl;printClockData<std::chrono::system_clock>();std::cout << "\nhigh_resolution_clock: " << std::endl;printClockData<std::chrono::high_resolution_clock>();std::cout << "\nsteady_clock: " << std::endl;printClockData<std::chrono::steady_clock>();#ifdef _WIN32system("pause"); #endifreturn 0; } system_clock: - precision: 0.000100 milliseconds - is_steady: falsehigh_resolution_clock: - precision: 0.000001 milliseconds - is_steady: truesteady_clock: - precision: 0.000001 milliseconds - is_steady: true

建議

以下是 stackoverflow 上一個大佬給出的建議difference between steady clocl vs system clock

  • 盡量不要使用?count()?方法
  • 盡量不要使用?time_since_epoch()
  • 理由是:?提供了類型安全的機制防止用戶進行單位換算的時候出錯;但是這兩個函數是例外的,起到“緊急出口的作用”,

    Such emergencies arise when (for example) the committee neglects to give you all the tools you need to get the job done (such as I/O) for the?types, or such as the need to interface with some other timing API via integers

    在I/O 或者與其他 通過整數傳參數的時間函數接口中使用。

    使用方法

    例子:一個用來測試代碼段運行時間的宏

    #include <chrono>#define TIMERSTART(tag) auto tag##_start = std::chrono::steady_clock::now(),tag##_end = tag##_start #define TIMEREND(tag) tag##_end = std::chrono::steady_clock::now() #define DURATION_s(tag) printf("%s costs %d s\n",#tag,std::chrono::duration_cast<std::chrono::seconds>(tag##_end - tag##_start).count()) #define DURATION_ms(tag) printf("%s costs %d ms\n",#tag,std::chrono::duration_cast<std::chrono::milliseconds>(tag##_end - tag##_start).count()); #define DURATION_us(tag) printf("%s costs %d us\n",#tag,std::chrono::duration_cast<std::chrono::microseconds>(tag##_end - tag##_start).count()); #define DURATION_ns(tag) printf("%s costs %d ns\n",#tag,std::chrono::duration_cast<std::chrono::nanoseconds>(tag##_end - tag##_start).count());// usage: // TIMERSTART(for_loop); // for (int i = 0; i < 100000; i++) // { // i*i; // } // TIMEREND(for_loop); // DURATION_ms(for_loop);

    參考

  • c++ - Difference between steady_clock vs system_clock? - Stack Overflow
  • C++ Stardard Library:A Tutorial and Reference, 2nd Edition
  • 總結

    以上是生活随笔為你收集整理的C++ chrono 库中的 steady_clock 、 system_clock、high_resolution_clock区别的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 免费性爱视频 | 美腿丝袜亚洲色图 | 插插插日日日 | 伦理片一区二区三区 | se综合| 国产日产精品一区二区三区 | 亚洲乱码电影 | 中文字幕网站在线观看 | 日本中文字幕在线免费观看 | 亚洲精品中文字幕乱码三区91 | 欧美yyy| 一区视频| 毛片随便看| 久久久久人妻一区精品 | 男男一级淫片免费播放 | 在线观看的av网址 | 少妇精品一区二区 | 久久久久久久久久久久久av | 成人免费高清在线观看 | 精品色 | 麻豆国产在线播放 | 伊人情人综合 | 久草香蕉在线 | 黑人巨大猛交丰满少妇 | 久久久视| 亚洲欧美一区二区三区在线 | 国产精品--色哟哟 | 日本免费在线一区 | 亚洲精品在线免费观看视频 | 中文天堂| 一边摸一边做爽的视频17国产 | 高清中文字幕 | 亚洲久久久久久 | 伊人青青操| 黄色福利 | 在线观看久| 玖玖视频| 韩日午夜在线资源一区二区 | 国产在线超碰 | 欧美日韩a级片 | 国产福利不卡 | 久久精品国产99久久久 | 欧美激情一区二区在线 | 国产成年人免费视频 | 人物动物互动39集免费观看 | 国产精品网站免费 | xxxx日本高清 | 成人男女视频 | 国产成人在线免费观看 | 天天色一色 | 日韩精品专区 | 日韩精品在线一区二区 | 色就是色亚洲色图 | h亚洲| 精品视频在线观看 | 西野翔夫の目の前で犯在线 | 超碰免费在线播放 | 老司机午夜免费精品视频 | 8090理论片午夜理伦片 | 看一级黄色片 | 超碰人人干人人 | 日本狠狠干 | www.国产一区二区三区 | 亚洲精品黄色 | 日韩在线一区二区 | 毛片哪里看 | 88国产精品视频一区二区三区 | 台湾佬综合网 | a级片在线 | 三区在线观看 | 中文字幕三级 | 日日日日干 | 亚洲成人精品一区二区 | 亚洲av无码国产精品久久不卡 | 国产欧美在线 | 色哟哟网站 | 亚洲精品女人 | 日韩黄色免费电影 | 国产在线观看 | 我的邻居在线观看 | 男女无遮挡网站 | 9久久9毛片又大又硬又粗 | 欧美黑人一区二区三区 | 一区二区三区视频在线 | 象人高潮调教丨vk | 露胸app| 99色网| 99视频免费| 国产又色又爽又黄 | 久久久777 | 久久男女| 久久精品一二区 | 国产又粗又猛又爽又黄的视频小说 | 97人妻精品一区二区三区视频 | 久久婷婷伊人 | 日本三级理论片 | 午夜8888| 99热青青草 | 国产无遮挡免费观看视频网站 |