컴파일러의 최적화 수준을 설정
옵션 | 최적화수준 |
-O0 | 최적화를 수행하지 않는다. (기본값) |
-O1 또는 -O | 코드 크기와 실행 시간을 줄이는 것을 제외한 최적화는 실행하지 않는다 |
-O2 | 메모리 공간과 속도를 희생하지 않는 범위내의 모든 최적화를 수행한다 loop unrolling과 function inlining에 대한 최적화를 수행하지 않는다 |
-O3 | O2 최적화에 인라인 함수와 레지스터에 대한 최적화를 추가로 수행한다. |
-Os | O2 최적화를 수행하지만 코드 크기를 증가시키는 최적화는 생략한다. |
-Ofast | 사용이 권장되지 않는 최적화 옵션 |
※ 커널 컴파일 시 최적화 옵션 -O2만 사용하는 이유
커널은 최적화된 수행 속도를 위해 의도적으로 인라인 함수를 사용하고 있다. -O3 최적화는 컴파일러가 판단해서 인라인을 인라인이 빠른 것은 인라인으로, 함수가 빠른 것은 함수로 바꿔버리기 때문에 컴파일러에 의해서 자의적으로 함수로 바뀌는 것을 막기 위해 -O2 옵션을 사용한다.
'운영체제 > Linux' 카테고리의 다른 글
gdb의 플러그인 pwndbg 설치 (0) | 2022.10.18 |
---|---|
Linux ] cat 명령어, > 리다이렉션 (0) | 2022.10.10 |
Linux ] gdb 디버거 사용법 (2) | 2022.10.09 |
Linux ] rm 명령어 (0) | 2022.10.09 |
Linux ] 연속으로 명령 실행시키기 ; & && || pipe (0) | 2022.10.09 |