9. 질문 — 메모리 할당자 심화 (tcmalloc/jemalloc, 단편화)

난이도 최상 해설 보기 →
문제

질문 — 메모리 할당자 심화 (tcmalloc/jemalloc, 단편화)

상황

C++ 게임서버가 장시간 돌면 메모리 사용량이 서서히 늘고(반납했는데도), 할당이 느려지는 구간이 생긴다. 동료가 "기본 malloc 대신 jemalloc/tcmalloc을 깔자"고 한다.

질문

  1. 범용 할당자(malloc)는 내부적으로 무엇을 하느라 비싸고, 멀티스레드에서 어떤 병목이 생기는가?
  2. tcmalloc/jemalloc 같은 현대 할당자가 빠른 이유(thread-local cache, size class, arena)를 설명하라.
  3. 내부 단편화 vs 외부 단편화의 차이는? "반납했는데 메모리가 안 줄어드는" 현상은 왜 생기는가?
  4. 게임서버에서 할당자 교체 외에 단편화·할당 비용을 줄이는 방법(오브젝트 풀, 슬랩, arena/region 할당)을 설명하라.
답안 작성
내 답안 · 자동 저장

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