인프런 커뮤니티 질문&답변

sete님의 프로필 이미지
sete

작성한 질문수

독하게 되새기는 C 프로그래밍

스택 메모리는 왜 아껴야 하는건가요?

해결된 질문

작성

·

805

·

수정됨

0

기본적으로 힙과 스택이 어떤 식으로 사용되는지는 알고 있는데요,

다만 스택의 기본 최대 크기가 1MB라는 점이 잘 이해가 안됩니다..

아마 제가 실무를 경험해본 적이 없어서 공감을 못하는 듯한데

이 1MB라는 것이 기본값으로 쓰일 만큼 적절한 크기인가요?

제 생각엔 그렇게 널널한 크기는 아닌 듯한데.. 그렇게까지 아껴야 하는 이유가 뭘까 싶어서 질문드립니다

그냥 힙 영역을 최대한 많이 확보하기 위해서라고 생각하면 될까요?

답변 1

1

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

네, 크게 부족하지 않습니다. 스택이 메모리는 스레드마다 동일하게 부여됩니다. 싱글 스레딩 상황에서는 큰 문제가 없을지 모르지만 멀티스레딩 상황에서 불필요하게 스택 메모리를 높여버리면 모든 스레드가 스택을 크게 할당하게 되고 이는 스스로 생각하는 것처럼 힙영역 등 다른 용도 메모리 공간을 줄이는 원인이 됩니다. 결국 자원 운영 효율에 관한 문제로 이해하면 되겠습니다. 감사합니다.

sete님의 프로필 이미지
sete
질문자

그렇군요..^^ 알고리즘 문제를 풀면서 스택 오버플로우를 종종 겪다보니 실무에서도 그러한지? 라는 생각을 하곤 했습니다 물론 실수가 원인이지만요~감사합니다^^

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

스택 오버의 가장 흔한 원인 중 하나는 재귀호출입니다. 노파심에 사족을 달아봅니다. 참고하시고 좋은 학습성과 거두시기 바랍니다. ^^

sete님의 프로필 이미지
sete

작성한 질문수

질문하기