您的位置:首页 > 编程语言 > C语言/C++

C/C++中计算程序运行时间

2017-08-30 15:57 363 查看

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: