g++의 경우 최적화 옵션 안 주면 그냥 런타임에 호출해버릴 수도 있나보네요




fibonacci(45)를 그냥 출력하게 해놓고 컴파일 및 실행보니

최적화 옵션 안 줄땐 오래 걸려 실행되고

-O2로 주니까 바로 실행되네요




다만 fibonacci 값을 컴파일 시간에 알려져야하는 문맥에 위치시키니 최적화 관계 없이 바로 실행되네요

컴파일되기 위해서는 최적화고 뭐고 무조건 컴파일 때 계산해야하는 경우라 그런가보네요



그나저나 피보나치값이 컴파일 때 계산될 때의 컴파일 시간이랑, 런타임 때 계산될 때의 런타임 시간이랑 비교해보면 컴파일 때 하는게 압도적으로 빠르네요

컴파일러가 더 효율적으로 계산하나요?