chrono

C++11에서 추가된 시간 라이브러리로 time 함수보다 정밀하다.

필요한 헤더 파일
#include <chrono>

3개의 Clock type이 있다.

1. system_clock : C런타임의 time_t와 호환된다.
2. steady_clock : 역행하지 않는 시간
3. high_resolution_clock : 정밀도가 가장 높은 시간

#include <chrono>
#include <iostream>

int main()
{
    //std::chrono::system_clock::time_point old = std::chrono::system_clock::now();
    //std::chrono::steady_clock::time_point old = std::chrono::steady_clock::now();
    std::chrono::high_resolution_clock::time_point old = std::chrono::high_resolution_clock::now();

    for (int n = 0; n < 1000; n++)  std::cout << "chorono test\n";

    //std::chrono::system_clock::time_point curr = std::chrono::system_clock::now();
    //std::chrono::steady_clock::time_point curr = std::chrono::steady_clock::now();
    std::chrono::high_resolution_clock::time_point curr = std::chrono::high_resolution_clock::now();

    std::chrono::duration<double> duration = curr - old;
    std::cout << "측정 duration sec: " << duration.count();

    std::chrono::nanoseconds nano = curr - old;
    std::cout << "\n측정 nanoseconds: " << nano.count();

    std::chrono::microseconds micro =
        std::chrono::duration_cast<std::chrono::microseconds>(curr - old);
    std::cout << "\n측정 microseconds: " << micro.count();

    std::chrono::milliseconds ms =
        std::chrono::duration_cast<std::chrono::milliseconds>(curr - old);
    std::cout << "\n측정 milliseconds: " << ms.count();

    std::chrono::seconds sec =
        std::chrono::duration_cast<std::chrono::seconds>(curr - old);
    std::cout << "\n측정 seconds: " << sec.count();

    std::chrono::minutes min =
        std::chrono::duration_cast<std::chrono::minutes>(curr - old);
    std::cout << "\n측정 minutes: " << min.count();

    std::chrono::hours hour =
        std::chrono::duration_cast<std::chrono::hours>(curr - old);
    std::cout << "\n측정 hours: " << hour.count();
    return 0;
}

출력 결과:
측정 duration sec: 0.483679
측정 nanoseconds: 483678641
측정 microseconds: 483678
측정 milliseconds: 483
측정 seconds: 0
측정 minutes: 0
측정 hours: 0

duration 결과는 초단위로 표시된다.
나머지 결과는 정수로 long이나 int 타입이다.