查看程序耗时的方法:
采用函数gettimeofday
#include <sys/time.h>
#include <unistd.h>
float time_use = 0;
struct timeval start;
struct timeval end;
gettimeofday(&start, NULL);
inputImage(ibuff, len, nWidth, nHeight);
gettimeofday(&end, NULL);
time_use = (end.tv_sec - start.tv_sec) * 1000000 + (end.tv_usec - start.tv_usec);
time_use = time_use / 1000000;
printf("\n inputImage consume= %fs \n", time_use);
采用chrono来计算时间
采用chrono来计算时间,参考代码
https://en.cppreference.com/w/cpp/chrono/duration/duration_cast
#include <iostream>
#include <chrono>
#include <ratio>
#include <thread>
void f()
{
std::this_thread::sleep_for(std::chrono::seconds(1));
}
int main()
{
auto t1 = std::chrono::high_resolution_clock::now();
f();
auto t2 = std::chrono::high_resolution_clock::now();
// floating-point duration: no duration_cast needed
std::chrono::duration<double, std::milli> fp_ms = t2 - t1;
// integral duration: requires duration_cast
auto int_ms = std::chrono::duration_cast<std::chrono::milliseconds>(t2 - t1);
// converting integral duration to integral duration of shorter divisible time unit:
// no duration_cast needed
std::chrono::duration<long, std::micro> int_usec = int_ms;
std::cout << "f() took " << fp_ms.count() << " ms, "
<< "or " << int_ms.count() << " whole milliseconds "
<< "(which is " << int_usec.count() << " whole microseconds)" << std::endl;
}