F1:
头文件:#include<time.h>
开始的地方:
clock_t start, finish;
double totaltime;
start = clock();
结束的地方:
finish = clock();
totaltime = (double)(finish - start) / CLOCKS_PER_SEC;
cout << "\n此程序的运行时间为" << totaltime << "秒!" << endl;
这样就OK啦
F2:
#include <iostream>
#include <fstream>
using namespace std;
std::chrono::steady_clock::time_point t1 = std::chrono::steady_clock::now();
// Pass the image to the SLAM system
MultiSLAM.TrackMultiColSLAM(imgs, tframe);
std::chrono::steady_clock::time_point t2 = std::chrono::steady_clock::now();
double ttrack = std::chrono::duration_cast<std::chrono::duration<double> >(t2 - t1).count();
ubuntu下使用该方法要注意的是:-std=c++ 11 ,一定要有,没有就会报错,这个方法我搞了半天,擦。
// high_resolution_clock example
#include <iostream>
#include <ctime>
#include <ratio>
#include <chrono>
int main ()
{
using namespace std::chrono;
high_resolution_clock::time_point t1 = high_resolution_clock::now();
std::cout << "printing out 1000 stars...\n";
for (int i=0; i<1000; ++i) std::cout << "*";
std::cout << std::endl;
high_resolution_clock::time_point t2 = high_resolution_clock::now();
std::cout<<"in seconds time:";
duration<double,std::ratio<1,1>> duration_s(t2-t1);
std::cout<<duration_s.count()<<" seconds"<<std::endl;
std::cout<<"in millisecond time:";
//duration<double,std::ratio<1,1000>> duration_ms(t2-t1);
duration<double,std::ratio<1,1000>> duration_ms=duration_cast<duration<double,std::ratio<1,1000>>>(t2-t1);
std::cout<<duration_ms.count()<<" milliseconds"<<std::endl;
std::cout<<"in microsecond time:";
//duration<double,std::ratio<1,1000000>> duration_ms(t2-t1);
duration<double,std::ratio<1,1000000>> duration_mcs=duration_cast<duration<double,std::ratio<1,1000000>>>(t2-t1);
std::cout<<duration_mcs.count()<<" microseconds"<<std::endl;
duration<double> time_span = duration_cast<duration<double>>(t2 - t1);
std::cout << "It took me " << time_span.count() << " seconds.";
std::cout << std::endl;
return 0;
}