코딩처음입니다만
군집 로봇, 모션 플래닝, 자율주행에 관심있는 SW 개발자입니다 !
[C++] 알고리즘 수행 시간 측정
728x90
반응형

1. 개요

알고리즘을 개발하다 보면 수행 시간이 얼마나 걸리느냐가 굉장히 중요한 요소 중 하나이다. 그렇다면 코드 단위에서 실행 시간을 어떻게 측정할까?

2. 간단한 예시

아주 간단하게는 <ctime>clock()을 사용하는 방법이 있다.

#include <ctime>

clock_t start, end;

start = clock();
// 이 공간에 측정하고자 하는 알고리즘을 넣는다.
end = clock();

std::cout << "실행시간: " << end - start  << " ms" << std::endl;

하지만 다음 설명할 방법이 내가 제일 좋아하는 방법이며, 헤더 파일로 하나 만들어두면 어느 프로그램을 개발할 때나 사용할 수 있다 !

3. 정확한 예시

클래스를 이용하여 아래와 같이 미리 선언해둔다.

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 t_algorithm;
// 측정하고자 하는 알고리즘
std::cout << "실행시간: " << t_algorithm.toc() << std::endl;

단위는 [ms]이다.

반응형
  Comments,     Trackbacks