在程序書寫過程中,我們常常需要得到某一段代碼的執行時間,來判斷當前代碼是否冗餘,是否會消耗大量的系統資源,或者在資源加載的過程中,判斷是那些資源消耗了大量的時間。
在c++中,有一個活的時間的辦法,但精度只到秒:
struct timeval now;
struct tm* time;
gettimeofday(&now, NULL);
time = localtime(&now.tv_sec);
char date[32] = {0};
sprintf(date, "%d%02d%02d",time->tm_year + 1900, time->tm_mon + 1, time->tm_mday);
如果想要獲取到毫秒級時間差,則
auto t1 = std::chrono::high_resolution_clock::now();
{
......
}
auto t2 = std::chrono::high_resolution_clock::now();
log(">>>>>>>>>>>time1 = %lld", std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1).count());
中間{ ...... }表示你要獲取執行時間的代碼段,最後輸出時間即爲該代碼段的時間