chrono
chrono는 C++11에서 추가된 시간 라이브러리다. 기존의 C런타임에서 제공하는 time 함수보다 다양한 기능을 제공하며, 사용이 쉽고 정밀도가 훨씬 높다. 또한, time함수는 초단위의 값만 측정할 수 있는 데 반해, chrono는 나노 밀리 초 단위까지 측정할 수 있다.
C++03에서는 초 단위보다 더 정밀한 단위로 시간을 측정하려면 OS에서 제공하는 API를 사용해야 하지마느, chrono를 사용하면 OS와는 독립적으로 정밀도가 높은 시간을 측정할 수 있다. 또한, 특정 시간 구간에 걸린 시간을 초, 밀리 초, 나노 초 단위로 얻을 수 있으며 시간끼리도 연산할 수 있다.
chrono 사용하기
<chrono를 사용하여 성능 측정 예제>
시간 단위
chrono를 이용하면 다양한 시간 타입으로 경과 시간을 계산할 수 있다. 가령 위 예제 에서는 초 단위의 정밀도로 소수점까지 표시할 수 있다. 그러나 일반적으로는 소수점이 나오는 결과값보다 정수로 나오는 값을 많이 사용할 것이다.
<시간 단위별 표시 예제>
시간 연산
위 예제에서 보듯이 chrono는 다양한 정밀도 타입으로 시간을 표시할 수 있다.
그리고 시간 정밀도 타입별로 생성할 때 값을 미리 설정할 수도 있다.
<시간 연산 예제>
clock 클래스
chrono의 clock 클래스에 대해서 간단하게 알아보자. 앞의 예제에서는 'system_clock'이라는 클래스만을 사용했지만, chrono에는 system_clock뿐만 아니라 steady_clock과 high_resolution_clock도 있다.
출처 : Thinking About C++ STL 프로그래밍 (최홍배 지음)
'C++ > STL' 카테고리의 다른 글
20. 스레드 (thread) (0) | 2017.10.31 |
---|---|
각 STL 컨테이너를 써야할 때를 정리(차이점) (0) | 2017.10.26 |
18. unordered_map (0) | 2017.10.24 |
17. forward_list (0) | 2017.10.23 |
16. array (0) | 2017.10.20 |