|
很多場合會需要進行運算時間的量測,而傳統的 clock 在時間精度上卻相當悲劇,在 15ms 內的時間幾乎很難正確評估。C++ 提供了一個方法,能讓時間量測變得相當精準。 |
---|
std::chrono::high_resolution_clock
C++ 的 chrono 提供了一個方法,std::chrono::high_resolution_clock,其中包含了類別宣告 time_point,方法 now(),並且透過 std::chrono::duration 作為差異的銜接。底下為使用範例:
Sample
#include <chrono> #include <iostream> #include <thread> int main(int argc, char* argv[]) { std::chrono::high_resolution_clock::time_point t; std::chrono::duration<double, std::milli> duration; t = std::chrono::high_resolution_clock::now(); std::this_thread::sleep_for(std::chrono::milliseconds(10)); duration = std::chrono::high_resolution_clock::now() - t; printf("This take %f ms.\n", duration.count()); system("pause"); }
程式執行應該會跑出下面的結果:
This take 15.743700 ms.
No comments:
Post a Comment