Chrono

최근 수정 시각: (5년 전)

1. 영단어 Chrono [편집]

시간, 시대와 관련됨을 나타내주는 영단어 접두사

2. C++의 표준 라이브러리 chrono [편집]

#include <iostream>
#include <chrono>

int main(void) {
    std::chrono::system_clock::time_point start = std::chrono::system_clock::now();
    SimpleFunc();
    std::chrono::system_clock::time_point end = std::chrono::system_clock::now();
    std::chrono::nanoseconds times = end - start;
    std::cout << "SimpleFunc를 실행하는데 걸린 시간: " << times.count() << std::endl;
    return 0;
}
chrono를 이용한 간단한 함수의 실행시간 측정 예제[1]

C++의 표준으로 포함된 시간관련 라이브러리이다. C++11표준의 제정 이전부터 boost라는 서드파티 라이브러리의 기능중 하나였으며 C++11에서부터 표준에 포함되어 #include<chrono>를 추가하면 사용이 가능하다.

참고로 chrono는 다음과 같이 선언되어 있다
namespace std {
    namespace chrono {
    //여기에 chrono의 관련 함수들이 선언
    }
}

그렇기에 chrono의 기능들을 사용하려면 std::chrono를 붙여야 사용이 가능하다.

chrono의 가장 큰 특징은 나노초 단위로 정밀한 시간연산이 가능하다는 것인데, 이를 이용해 특정 함수의 정밀한 실행 시간을 측정하는 것이 가능해졌다. chrono이전에는 windows.h를 인클루드하여 GetTickCount를 주로 썼으나 이것의 문제는 앞에서 인클루드하는 헤더 파일의 이름에서 알 수 있듯이 윈도우에 종속된 기능이라는 매우 큰 문제점이 있었다. 그러나 chrono는 윈도우에 종속되어 있는 GetTickCount와는 달리 C++이라는 언어의 표준이니 호환성 문제도 거의 없다시피 하니 부담도 없다.
[1] 없는 SimpleFunc의 예시는 이 글을 읽는 위키러들이 알아서 만들어 보자

라이선스를 별도로 명시하지 않은 문서는 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.

문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.