(1)利用系统函数gettimeofday
#include <sys/time.h> timeval start, end; gettimeofday(&start, NULL) 待测代码区域 gettimeofday(&end, NULL); std::cout << (1000000*(end.tv_sec - start.tv_sec) + (end.tv_usec - start.tv_usec))/1000.0 << "ms" << std::endl;
(2)利用opencv函数cv::getTickCount()+cv::getTickFrequency()
double t1 = (double)cv::getTickCount(); 待测代码区域 t1 = (double)cv::getTickCount() - t1; double meanTime = t1*1000.0 / cv::getTickFrequency()
(3)利用c++11标准库std::chrono
std::chrono::steady_clock::time_point t0 = std::chrono::steady_clock::now(); 待测代码区域 cudaDeviceSynchronize(); //加入此句可以等待测代码区域cuda异步操作完成之后才继续往下测时间 std::chrono::steady_clock::time_point t1 = std::chrono::steady_clock::now(); std::chrono::duration<double > time_used = std::chrono::duration_cast<std::chrono::duration<double >>(t1-t0); std::cout <<time_used.count()*1000.0 << "ms" << std::endl;