다음을 통해 공유


/STACK (스택 할당)

/STACK:reserve[,commit]

설명

/STACK 링커 옵션은 스택의 크기를 바이트 단위로 설정합니다. 파일을 빌드할 .exe 때만 이 옵션을 사용합니다. /STACK 파일에 적용 .dll 하면 옵션이 무시됩니다.

이 값은 reserve 가상 메모리의 총 스택 할당을 지정합니다. ARM64, x86 및 x64 컴퓨터의 경우 기본 스택 크기는 1MB입니다.

이 값은 commit 운영 체제에서 해석할 수 있습니다. WindowsRT에서는 한 번에 할당할 실제 메모리의 양을 지정합니다. 커밋된 가상 메모리로 인해 페이징 파일에 공간이 예약됩니다. 애플리케이션에 더 많은 스택 공간이 필요할 때 commit 값이 크면 시간을 줄일 수 있지만 메모리 요구 사항이 늘어나고 시작 시간이 오래 걸릴 수 있습니다. ARM64, x86 및 x64 컴퓨터의 경우 기본값 commit 은 4KB입니다.

reserve 10진수 또는 C-언어 16진수 표기법으로 값 및 commit 값을 지정합니다(접두사 사용0x).

스택의 크기를 설정하는 또 다른 방법은 모듈 정의(.def) 파일의 STACKSIZE 문을 사용하는 것입니다. STACKSIZE 둘 다 지정된 경우 스택 할당(/STACK) 옵션을 재정의합니다. 도구를 사용하여 EDITBIN 파일을 빌드한 .exe 후 스택 크기를 변경할 수 있습니다.

Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면

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

  2. 구성 속성>링커>시스템 속성 페이지를 선택합니다.

  3. 다음 속성 중 하나를 수정합니다.

    • 스택 커밋 크기

    • 스택 예약 크기

프로그래밍 방식으로 이 링커 옵션을 설정하려면

  1. StackCommitSizeStackReserveSize 속성을 참조하십시오.

참고 항목

MSVC 링커 참조
MSVC 링커 옵션