개요

프로그램이 무겁다는 것은 알고리즘의 실행시간이 길다는 것을 의미한다
어떤 알고리즘이 동작하기 전과 후의 시간을 비교해보자

#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