1 #include <iostream> 2 #include <chrono> 3 #include <ctime> 4 5 int main(){ 6 using namespace std::chrono; 7 using namespace std; 8 9 10 using _time = steady_clock::time_point; 11 12 _time t1 = steady_clock::now(); 13 14 /*code one*/ 15 16 _time t2 = steady_clock::now(); 17 18 19 20 21 /*code two*/ 22 23 _time t3 = steady_clock::now(); 24 duration<double> time_span1 = duration_cast<duration<double>>(t2 - t1); 25 duration<double> time_span2 = duration_cast<duration<double>>(t3 - t2); 26 std::cout << "It took me " << time_span1.count() << " seconds." << endl; 27 std::cout << "It took me " << time_span2.count() << " seconds." << endl; 28 29 return 0; 30 } 31 //可能会有小误差,建议使用大数据测试以减少误差
封装如下
1 #include <iostream> 2 #include <chrono> 3 4 5 struct Timer{ 6 std::chrono::time_point<std::chrono::steady_clock> start, end; 7 std::chrono::duration<double> duration; 8 9 Timer(){ 10 start = std::chrono::high_resolution_clock::now(); 11 } 12 13 ~Timer(){ 14 end = std::chrono::high_resolution_clock::now(); 15 duration = end - start; 16 17 double ms = duration.count() * 1000.0; 18 std::cout << "It takes me :" << ms << " ms" << std::endl; 19 } 20 21 };
获取当前时间
void get_now_time() { const auto now = system_clock::now(); /* Possible output: */ const time_t now_time_t = system_clock::to_time_t(now); std::cout << ctime(&now_time_t) << ' '; // Wed Oct 21 16:29:00 2015 }