개요 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
고정밀 시각, 시간측정용 std::chrono 는 "C++11" 이후 도입, Visual C++ 2012 이후 도입. 용어. 시각 : time point. 시간 : time interval, 2개 시각의 간격. 특징 - 고정밀(최소 시간단위 : 나노초), 편리기능 함수들. - 주요 클래스 : duration, time_point - 주요구조체 : system_clock, steady_clock - steady_clock 특징 Visual C++ 에서는 내부적으로 QueryPerformanceCounter 로 구현되어있음. monotonic. 늦게 호출된 now() 가 먼저 호출된 now() 이상의 값(같거나 더 큰 값)이 나온다는 의미. 헤더파일 #include <chrono> 더보기
<chrono>
Include the standard header <chrono> to define classes and functions that represent and manipulate time durations and time instants. (Visual Studio 2015:) The implementation of steady_clock has changed to meet the C++ Standard requirements for steadiness and monotonicity. steady_clock is now based on QueryPerformanceCounter() and high_resolution_clock is now a typedef for steady_clock. As a result, in Visual C++ steady_clock::time_point is now a typedef for chrono::time_point<steady_clock>; however, this is not necessarily the case for other implementations. C++
복사
LiteralsLiterals in the <chrono> header are members of the literals::chrono_literals inline namespace. For more information, see chrono literals.
Classes
Structs
Functions
Operators
Predefined Duration TypesFor more information about ratio types that are used in the following typedefs, see <ratio>.
Literals(C++11)The <chrono> header defines the following user-defined literals that you can use for greater convenience, type-safety and maintainability of your code. These literals are defined in the literals::chrono_literals inline namespace and are in scope when std::chrono is in scope.
from : MSDN 더보기
duration Class
Describes a type that holds a time interval, which is an elapsed time between two time points. 복사
template< class Rep, class Period = ratio<1> > class duration; template< class Rep, class Period > class duration; template< class Rep, class Period1, class Period2 > class duration <duration<Rep, Period1>, Period2>;
The template argument Rep describes the type that is used to hold the number of clock ticks in the interval. The template argument Period is an instantiation of ratio that describes the size of the interval that each tick represents.
Public Typedefs
Public Constructors
Public Methods
Public Operators
더보기
time_point Class
A time_point describes a type that represents a point in time. It holds an object of type duration that stores the elapsed time since the epoch that is represented by the template argument Clock. 복사
template< class Clock, class Duration = typename Clock::duration > class time_point;
Public Typedefs
Public Constructors
Public Methods
Public Operators
더보기
system_clock Struct
Represents a clock type that is based on the real-time clock of the system. 복사
struct system_clock;
A clock type is used to obtain the current time as UTC. The type embodies an instantiation of duration and the class template time_point, and defines a static member function now() that returns the time.
A clock is monotonic if the value that is returned by a first call to now() is always less than or equal to the value that is returned by a subsequent call to now(). A clock is steady if it is monotonic and if the time between clock ticks is constant. In this implementation, a system_clock is synonymous with a high_resolution_clock. Public Typedefs
Public Methods
Public Constants
더보기
steady_clock Struct
Represents a steady clock. 복사
struct steady_clock;
On Windows, steady_clock wraps the QueryPerformanceCounter function.
A clock is monotonic if the value that is returned by a first call to now() is always less than or equal to the value that is returned by a subsequent call to now(). A clock is steady if it is monotonic and if the time between clock ticks is constant. High_resolution_clock is a typdef for steady_clock. cpp reference 사이트의 chrono : http://en.cppreference.com/w/cpp/header/chrono time_point : http://en.cppreference.com/w/cpp/chrono/time_point duration : http://en.cppreference.com/w/cpp/chrono/duration |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
코드예-1 |
||||
현재시각 구하기. (epoch이후의 경과시간)
설명. 1. now() 함수 호출한 시점의 "시각"이 자료형 time_point 변수 tp_Now 에 저장된다. 2. 상기1에서 "시각"이라함은 epoch(UTC 1970년 1월 1일 0시0분0초 시점) 이후 now 호출한 시점까지의 나노초 단위의 경과시간. 3. 상기2의 epoch이후의 경과시간은 time_point 의 멤버 함수 time_since_epoch() 호출하여 duration 형 변수 duEpoch로 받았다. 4. duEpoch.count() 함수 호출로 64비트 정수형 변수 TimeIntervalEpoch_64 으로 받았다. 주의사항: nanoseconds 로 명시적 형변환 해야만 정확한 값을 받을 수 있음. nanoseconds 로 형변환 하지 않은 경우엔 반환값이 나노도 아니고, 마이크로 초도 아닌 나노초 기준 100으로 나눈값이 반환됨. nanoseconds 로 명시적 형변환 한 경우 : epoch 이후 경과한 정확한 나노초 : 1456136176997090600 명시적 형변환 없이 duEpoch.count(); 로 그냥 받은 경우 : 14561361769970906 상기 대비 100으로 나눈값임. 코드의 특정 처리구간 시간격 구하기.
|
||||
코드예-2. 당일 0시 이후 현재까지 경과시간 나노초 단위로 받기. |
||||
아래 코드에 사용된 std::time_t, std:tm 상세 보기 : http://igotit.tistory.com/673
실행결과.
|
||||
코드예-3. 실수형으로 받기. |
||||
상기 코드예-2의 마지막에 아래 코드 추가.
실행결과.
|
||||
연관
상위정리
Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11
첫 등록 : 2016.02.20
최종 수정 : 2022.03.07
단축 주소 : https://igotit.tistory.com/672
'VisualStudio.C++.C# > C . C++' 카테고리의 다른 글
C++ 클래스. 함수 오버라이딩. 가상함수. 순수가상함수. 추상 클래스.인터페이스 클래스. (0) | 2017.06.23 |
---|---|
C++ 클래스 static 변수 초기화. (0) | 2017.03.13 |
C/C++ 실수형 float, double 표준 IEEE754. 실수자료형 사용시 주의사항. (0) | 2016.02.18 |
C++ std::thread 클래스 이용한 스레드. 클래스멤버함수를 스레드로 실행시키는 방법. (0) | 2016.01.16 |
C++. 함수 인자로 포인터 전달하고 함수내에서 동적 메모리 할당 받기 2가지 방식. ** *& (1) | 2016.01.04 |
댓글