[c++]計時方法——std::chrono

計時的作用:測試某一段代碼的運行時間,時間越短,則性能相對越高。

C++11 標準的”最佳計時方法“的代碼:

#include <chrono>   
using namespace std;
using namespace chrono;

auto start = system_clock::now();
// do something...
auto end   = system_clock::now();
auto duration = duration_cast<microseconds>(end - start);
cout <<  "Spent" << double(duration.count()) * microseconds::period::num / microseconds::period::den << " seconds." << endl;

此方法可以精確到微妙,如花費了0.123456秒

  •     關鍵詞 auto 是一個“自動類型”,auto可以接受任何類型
  •     我們獲得時間點主要是通過clock時鐘獲得的。一共有三個時鐘,其中system_clock 是 C++11 提供的一個 clock。(除此之外,還有兩個clock:steady_clock 和 high_resolution_clock)
  •     now( ) 表示計時的那一時刻
  •     duration_cast< > 表示類型轉換
  •     microseconds 表示微秒。另外的五種時間單位:hours, minutes, seconds, milliseconds, nanoseconds
  •     num 和 den分別表示分子(numerator)和分母(denominator)。在上面的代碼中,num=1, den=1,000,000
  •     count( ) 用來返回時間

C++11的 #include< chrono >和傳統的 #include < ctime >相比,代碼量較多,但是精度也更高。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章