다음을 통해 공유


/Oy(프레임 포인터 생략)

호출 스택에서 프레임 포인터를 생성하지 않습니다.

구문

/Oy[-]

설명

프레임 포인터를 설정하고 제거할 필요가 없기 때문에 이 옵션을 사용하면 함수 호출 속도가 빨라집니다. 또한 일반 사용을 위해 한 번 더 레지스터를 해제합니다.

/Oy는 프레임 포인터 생략을 사용하도록 설정하고 /Oy- 는 누락을 사용하지 않도록 설정합니다. x64 컴파일러 에서는 /Oy/Oy- 를 사용할 수 없습니다.

코드에 프레임 기반 주소 지정이 필요한 경우 /Ox 옵션 다음에 /Oy- 옵션을 지정하거나 "y" 및 off 인수로 최적화를 사용하여 프레임 기반 주소 지정으로 최대 최적화를 얻을 수 있습니다. 컴파일러는 프레임 기반 주소 지정이 필요한 대부분의 상황(예: _alloca 함수 및 setjmp 구조적 예외 처리 포함)을 검색합니다.

/Ox(가장 빠른 최적화 사용)/O1, /O2(크기 최소화, 속도 최대화) 옵션은 /Oy를 의미합니다. /Ox, /O1 또는 /O2 옵션 후에 /Oy를 지정하면 명시적 또는 암시적 여부에 관계없이 /Oy가 비활성화됩니다.

/Oy 컴파일러 옵션을 사용하면 컴파일러가 프레임 포인터 정보를 표시하지 않으므로 디버거를 사용하기가 더 어려워집니다. 디버그 컴파일러 옵션(/Z7, /Zi, /ZI)을 지정하는 경우 다른 최적화 컴파일러 옵션 다음에 /Oy- 옵션을 지정하는 것이 좋습니다.

Visual Studio 개발 환경에서 이 컴파일러 옵션을 설정하려면

  1. 프로젝트의 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 C++ 컴파일러 및 빌드 속성 설정을 참조하세요.

  2. 구성 속성>C/C++>최적화 속성 페이지를 선택합니다.

  3. 프레임 포인터 생략 속성을 수정합니다. 이 속성은 /Oy 옵션만 추가하거나 제거합니다. /Oy- 옵션을 추가하려면 명령줄 속성 페이지를 선택하고 추가 옵션을 수정합니다.

프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면

참고 항목

/O 옵션(코드 최적화)
MSVC 컴파일러 옵션
MSVC 컴파일러 명령줄 구문