기존의 C++ 라이브러리는 시간을 계산하는 방법이 정밀하지 않았습니다. 최소한의 정밀하게 측정할 수 있는 시간이10ms 정도였습니다. 다른 방법이 있었지만 C++ 표준에서 제공하는 것이 아니라 운영체제에서 제공하는 방법이었습니다. C++11에서는 나노초까지 계산할 수 있는 chrono를 추가하였습니다.
#include <iostream> #include <chrono> using namespace std; using namespace chrono; int main() { system_clock::time_point startTime = system_clock::now(); for (auto i = 0; i < 1000000; i++); system_clock::time_point endTime = system_clock::now(); nanoseconds nano = endTime - startTime; cout << "나노초: " << nano.count() << endl; return 0; } | cs |
time_point는 시간 지점을 나타내는 자료구조 입니다. now()는 현재 지점을 나타내는 함수입니다. now()를 이용하여 현재 시각에 대한 정보를 저장합니다. 약 100만 번의 루프를 실행하고 걸린 시간은 2,198,100 나나초가 걸린 것을 알 수 있습니다. 과연 여러분은 어느정도 나오시나요? 저는 참고로 노트북입니다.
출처 https://jjeongil.tistory.com/151?category=686124
'Optimization & Compiler' 카테고리의 다른 글
Vectorization (0) | 2019.07.28 |
---|---|
Python time library 성능 체크 (0) | 2019.06.18 |
꼬리재귀 좋은 스레드 글 (0) | 2019.03.18 |
가장 간편한 shared pointer 사용법 예제 (0) | 2019.02.03 |
C 코드를 어셈블리로 보여주는 사이트 (0) | 2019.01.27 |