malloc() 알고리즘 비교: 스레드 경합에서 NUMA까지, 어떤 할당자를 선택할까

Comparison of Malloc() Algorithms

메모리 할당자는 멀티스레드 환경에서 병목이 되기 쉽다. 이 글은 dlmalloc부터 jemalloc, tcmalloc, mimalloc, snmalloc까지 주요 malloc 구현을 스레드 안전성, CAS 경합, NUMA 인식, 단편화 제어, 벤치마크 성능 측면에서 비교한다. 또한 워크로드별 권장 할당자와 피해야 할 선택을 제시하며, 고경합 멀티스레드에는 jemalloc, 지연 시간 민감 워크로드에는 mimalloc, NUMA 서버에는 snmalloc을 추천한다.

Malloc (libc) is the worst memory allocation API to use.

이 날의 다른 글

2026-09-17