C++ 之计时函数总结
1. clock()
cpp
复制代码
#include <time.h> //引入头文件
void main()
{
clock_t start, end;
start = clock();
fun(); //需计时的函数
end = clock();
float t_c=float(end-start)/CLOCKS_PER_SEC;
cout << "func cost = " << t_c << "ms" << endl;
printf("func cost = %.3f ms", t_c);
}
2. cv::getTickCount()
cpp
复制代码
#include<iostream>
#include<opencv2/opencv.hpp>
void main()
{
double t1 = cv::getTickCount();
func();
double t2 = cv::getTickCount();
double t_c = (t2 - t1)/cv::getTickFrequency();
cout << "func cost = " << t_c << "ms" << endl;
printf("func cost = %.3f ms", t_c);
}
3. std::chrono
cpp
复制代码
#include <iostream>
#include <chrono>
void time4()
{
// 计时开始时间点
// chrone 中常用的时钟类:
// - std::chrono::high_resolution_clock
// - std::chrono::system_clock
// - std::chrono::steady_clock
// 三种时钟类有一些区别,其中 high_resolution_clock 精度最高
auto start = std::chrono::high_resolution_clock::now();
// 要计时的代码段
fun();
// 计时结束时间点
auto end = std::chrono::high_resolution_clock::now();
// 计算运行时间, 时间单位:
// - std::chrono::seconds
// - std::chrono::milliseconds
// - std::chrono::microseconds
// - std::chrono::nanoseconds
auto duration = std::chrono::duration_cast<std::chrono::microseconds> (end - start);
// 输出时间(给定时间单位)
cout << "elapsed time in chrono = " << duration.count()/1000.0 << "ms" << endl;
}