language-agnostic - memory-management - Java Stack Heap - 스택과 힙은 무엇이며 어디에 있습니까?

자바 메모리 관리 / memory-management / stack / heap / dynamic-memory-allocation

프로그래밍 언어 책 에서는이 두 가지가 무엇인지 설명하지 않고 값 유형이 스택에 생성 되고 참조 유형이 에 생성된다고 설명합니다 . 나는 이것에 대한 명확한 설명을 읽지 못했습니다. 나는 스택 이 무엇인지 이해합니다 . 그러나,

RajeshKdev



Answer #1

Windows에서 많이 사용하지 않는 거대한 임시 버퍼를 만드는 것은 무료가 아닙니다. 이는 컴파일러가 스택이 존재하는지 확인하기 위해 함수를 입력 할 때마다 호출되는 스택 프로브 루프를 생성하기 때문입니다 (Windows는 스택을 확장해야하는시기를 감지하기 위해 스택 끝에 단일 가드 페이지를 사용하기 때문입니다. 스택 끝에서 한 페이지 이상 메모리에 액세스하면 충돌이 발생합니다.) 예:

void myfunction()
{
   char big[10000000];
   // 99 %의 시간 중 처음 1K 만 사용하는 작업을 수행합니다.
}