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

+ Recent posts