배움과 성장/시스템·성능
glibc malloc 내부 구조: arena·chunk·tcache·bin·단편화
glibc의 malloc()은 큰 memory 영역을 application 요청 크기에 맞춰 나누고, 반환된 영역을 재사용한다. glibc malloc 구조의 핵심 단위가 arena와 chunk이고, free chunk를 찾는 경로에 tcache와 여러 bin이 관여한다.다만 allocator 자료구조는 구현 세부사항이다. glibc 버전과 tunable에 따라 경로와 기본값이 달라지므로, 오래된 그림 하나를 모든 Linux의 malloc에 적용하면 안 된다. 여기서는 현재 glibc manual이 보장하는 큰 구조를 중심으로 정리한다.arena는 allocator가 관리하는 영역과 상태다multi-thread process에서 모든 thread가 하나의 lock만 놓고 경쟁하면 allocation la..