알고리즘 수행시간 측정 (chrono.h)
개요
프로그램이 무겁다는 것은 알고리즘의 실행시간이 길다는 것을 의미한다
어떤 알고리즘이 동작하기 전과 후의 시간을 비교해보자
#include <ctime>
clock_t start, end;
start = clock();
// [HERE] : My code
end = clock();
std::cout << "실행시간: " << end - start << " ms" << std::endl;
보통의 경우 위와 같이 짜지만, 클래스를 이용하여 만들어 보자
다운로드
코드는 아래 주소에서 다운로드 할 수 있습니다
$ git clone https://github.com/bigbigpark/tic_toc.git
in tic_toc.h
// Copyrights below,
// Author: Tong Qin qintonguav@gmail.com
// Shaozu Cao saozu.cao@connect.ust.hk
#pragma once
#include <ctime>
#include <cstdlib>
#include <chrono>
class TicToc
{
public:
TicToc()
{
tic();
}
void tic()
{
start = std::chrono::system_clock::now();
}
double toc()
{
end = std::chrono::system_clock::now();
std::chrono::duration<double> elapsed_seconds = end - start;
return elapsed_seconds.count() * 1000;
}
private:
std::chrono::time_point<std::chrono::system_clock> start, end;
};
TicToc
클래스를 이용해서 object를 하나 생성합니다
코드 실행 시간을 측정하고 싶은 곳 앞에서 object.tic()
뒤에서 object.toc()
을 받아서 출력하면 정확한 시간(ms)이 출력됩니다!
예제
아래와 같이 사용합니다
TicToc t_whole;
t_whole.tic();
// [Your code!]
cout << "실행시간: " << t_whole.toc() << std::endl;
Leave a comment