3. 동적 할당 비용·단편화, 메모리 풀/오브젝트 풀

난이도 상 해설 보기 →
문제

문제 3 — 동적 할당 비용·단편화, 메모리 풀/오브젝트 풀

면접 질문

  1. malloc/new 같은 동적 할당이 "비싸다"고 할 때, 구체적으로 어떤 비용 요소들이 있나요? (탐색, 락, 시스템 콜, 캐시 등)

  2. 외부 단편화(external fragmentation)와 내부 단편화(internal fragmentation)의 차이를 설명하고, 각각 어떤 상황에서 발생하는지 예를 들어보세요.

  3. 메모리 풀(memory pool) 또는 오브젝트 풀(object pool)이란 무엇이며, 일반 할당자 대비 어떤 이점을 주나요? 어떤 트레이드오프가 있나요?

응용 시나리오

장시간(수 주) 무중단 운영되는 MMO 게임 서버가 있습니다. 운영 시간이 길어질수록 다음 증상이 나타납니다.

  • 초기에는 빠르던 몬스터/투사체(projectile) 생성·소멸이 점점 느려지고 지연 스파이크가 잦아진다.
  • 프로세스 RSS(상주 메모리)가 계속 우상향하는데 명백한 메모리 누수(leak)는 없어 보인다.
  • 초당 수만 개의 투사체가 생성/파괴되는 전투 구간에서 특히 프레임/틱이 튄다.

이 증상들의 원인을 동적 할당과 단편화 관점에서 진단하고, 메모리 풀/오브젝트 풀을 도입한다면 어떻게 설계할지(고정 크기 vs 가변, 스레드 처리, 풀 고갈 시 정책 등) 구체적으로 제안해보세요. 풀 도입의 위험/주의점도 함께 적으세요.

답안 작성
내 답안 · 자동 저장

직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.