/Oy(프레임 포인터 생략)
호출 스택에 프레임 포인터를 만들지 않습니다.
/Oy[-]
설명
프레임 포인터를 설정하고 제거할 필요가 없기 때문에 이 옵션을 사용하면 함수 호출 속도가 빨라집니다.또한 자주 사용되는 변수와 하위 식을 저장하는 데 필요한 레지스터 하나(Intel 386 이상 버전의 EBP)도 추가로 확보할 수 있습니다.
/Oy를 사용하면 프레임 포인터를 생략할 수 있고 /Oy-를 사용하면 생략이 비활성화됩니다. /Oy는 x86 컴파일러에서만 사용할 수 있습니다.
코드에 EBP 기반 주소 지정이 필요하면 /Ox 옵션 다음에 /Oy– 옵션을 지정하거나 optimize에 "y" 및 off 인수를 사용하여 EBP 기반 주소 지정을 최대로 최적화할 수 있습니다.컴파일러가 EBP 기반 주소 지정이 필요한 상황을 대부분 인식합니다. 예를 들어, _alloca 및 setjmp 함수와 구조적 예외 처리가 있는 경우에 EBP 기반 주소 지정이 필요합니다.
/Ox(최대 최적화) 및 /O1, /O2(크기 최소화, 속도 최대화) 옵션은 /Oy를 내포하고 있습니다./Ox, /O1 또는 /O2 옵션 뒤에 **/Oy–**를 지정하면 /Oy가 명시적인지 암시적인지 여부와 상관없이 이 옵션이 비활성화됩니다.
/Oy 컴파일러 옵션을 사용하면 컴파일러에서 프레임 포인터 정보가 제한되므로 디버거를 사용하기가 더 어려워집니다.디버그 컴파일러 옵션(/Z7, /Zi, /ZI)을 지정하는 경우에는 다른 최적화 컴파일러 옵션 뒤에 /Oy- 옵션을 지정하는 것이 좋습니다.
Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면
프로젝트의 속성 페이지 대화 상자를 엽니다.자세한 내용은 방법: 프로젝트 속성 페이지 열기를 참조하십시오.
C/C++ 폴더를 클릭합니다.
최적화 속성 페이지를 클릭합니다.
프레임 포인터 생략 속성을 변경합니다.이 속성은 /Oy 옵션만 추가 또는 제거합니다./Oy- 옵션을 추가하려면 명령줄을 클릭하고 추가 옵션을 수정해야 합니다.
프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면
- 자세한 내용은 OmitFramePointers를 참조하십시오.