2020年10月25日 星期日

C++ 計算程式的執行時間

平常開發程式的時候,最常被討論的部分就是performance好不好,而一般判定方式就是去計算程式的執行時間。

為了計算程式執行時間,會使用一個函式其名稱是clock,但使用前要先include time.h才能用,而clock回傳的單位是毫秒(資料型態是double),若希望單位變成秒,則要再除CLOCKS_PER_SEC才行,此外,為了計算準確的執行時間,會使用Ctrl+F5以最佳效能下做測試。

測試OpenCV 色域轉換所需時間,程式碼如下:
#include <opencv2/opencv.hpp>
#include "time.h"
using namespace cv;
using namespace std;
double StartTime, EndTime;

int main(){

	//讀取影像
	Mat SrcImg = imread("dog.jpg", CV_LOAD_IMAGE_COLOR);
	Mat OutImg;

	//紀錄起始時間點
	StartTime = clock();
	cvtColor(SrcImg, OutImg, CV_BGR2GRAY);
	
	//紀錄結束時間點
	EndTime = clock();

	imshow("OutImg", OutImg);
	waitKey(1000);

	//因為clock回傳的都是ms,所以若要用s顯示則需要除CLOCKS_PER_SEC,CLOCKS_PER_SEC代表1000
	//測試執行時間,通常都是以Ctrl+F5,則能得到最準確的時間
	cout << " Time:" << (EndTime - StartTime) / CLOCKS_PER_SEC << "ms" << endl;
	return 0;
}