정진하는중
썸네일 이미지

[MSVC] switch-case optimization

해당 내용은 Visual Studio의 msvc 컴파일러를 기준으로 작성한 글입니다.( 본인이 사용하는 컴파일러가 해당 최적화를 진행하는 것은 컴파일러 문서를 참조하세요. )  1. 점프 테이블 swtich-case의 어셈블리 코드가 만들어 질 때, 컴파일러는 효율성을 높이기 위해, 여러 조건문을 비교하는 어셈블리를 대신하여 점프 테이블을 만들어서 활용합니다.이를 통해 Swtich-case 문의 분기를 상수 시간 복잡도로 분기할 수 있습니다.( 이는 case 값을 정렬하여 작성하였을 때를 기준으로 합니다. 예시를 들어 Case 1, Case 2, Case 3 ... )  using namespace std;int main(){ int val = 0; std::cin >> val; switch(val) ..
썸네일 이미지

시간 함수

광고가 없는 개인 저장용 블로그입니다. 자세한 내용은 링크한 출처를 참조 바랍니다. 1. 해상도 모든 시간 관련 함수들은 저 마다의 해상도를 가지며, 얼마나 많은 Tick을 쪼개어 시간을 표현하고자 하는지에 따라 저해상도와 고해상도를 나눌 수 있다.   2. GetTickCount / GetTickCount64 운영체제가 실행된 이후 경과 시간을 ms 단위로 반환합니다.윈도우의 기본 타이머 정확도는 15.625ms(15,625,000ns), 타이머 인터럽트의 발생 횟수에 영향을 받는 함수입니다.이 함수는 3번 항목에서 다루는 timeBeginPeriod를 통해 조절된 타이머 인터럽트에 영향을 받지 않습니다.함수의 반환 값은 운영체제가 기본 타이머의 시간 단위에 맞춰 반환 할 변수를 업데이트하기 때문입니다..