질문:
힙 메모리는 이론적으로 사용 가능한 RAM까지 할당할 수 있지만 왜 스택 메모리 크기가 일반적으로 약 1MB로 제한되어 있습니까?
답변:
무작위로 할당할 수 있는 힙과 달리 스택은 연속적으로 저장되어야 합니다. 기억 위치. 즉, 즉시 사용되지 않더라도 가상 주소 공간의 상당 부분을 스택용으로 예약해야 합니다.
예를 들어, 2GB 가상 주소 공간이 있는 32비트 애플리케이션에서 2MB 스택 size는 최대 스레드 수를 1024개로 제한합니다. 스택 크기를 100MB로 늘리면 스레드 제한이 약 20개로 더욱 줄어듭니다. 이는 웹 서버 및 GUI 프로그램과 같은 애플리케이션에서 문제가 될 수 있습니다.
흥미롭게도 이 제한은 또한 64비트 플랫폼에서 지속됩니다. 기술적인 이유는 불분명하지만, 개발자들은 스택에 대규모 개체 할당을 피하고 필요할 때 스택 크기를 수동으로 조정하는 등 스택 모범 사례에 익숙해진 것으로 추측됩니다. 따라서 64비트 시스템에서 "거대한" 스택 지원의 필요성은 여전히 탐구되지 않은 상태입니다.
위 내용은 힙 메모리용 RAM의 이론적 가용성에도 불구하고 스택 메모리 크기가 일반적으로 약 1MB로 제한되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!