위키득계정 ↗
기술

TCMalloc

TCMalloc기술
개발
Google
분류
다중 스레드 메모리 할당기
캐시 방식
논리 CPU별 또는 스레드별
구조
프런트엔드 미들엔드 백엔드
TCMalloc은 C와 C플러스플러스의 병렬 메모리 할당을 지원하는 할당기다. 작은 객체의 캐시와 여러 계층의 메모리 관리를 이용해 할당 경합과 비용을 줄인다.

가까운 캐시에서 처리

작은 객체를 크기 분류에 맞는 캐시에서 할당하고 반환한다. 캐시에 적합한 객체가 있으면 공유 경로의 잠금을 피할 수 있다. 캐시가 비거나 큰 요청이 들어오면 다른 계층에서 메모리를 공급받는다.

CPU와 스레드 모드

프런트엔드는 논리 CPU별 모드와 이전 스레드별 모드로 동작할 수 있다. 따라서 이름에 스레드 캐싱이 들어간다는 이유로 모든 구성의 캐시가 항상 스레드 수에 비례한다고 판단해서는 안 된다. 사용하는 모드와 플랫폼 조건을 확인한다.

응용 전체의 평가

해제한 메모리를 재사용하거나 운영체제로 돌려보내는 정책과 캐시 크기가 사용량에 영향을 준다. 빠른 할당만 보지 말고 실제 요청 분포와 병렬 부하에서 공간 및 지연을 함께 측정한다. 같은 이름의 관련 구현 계열도 저장소와 버전을 구분해 관리한다.

관련 문서

mimalloc / snmalloc / Hoard 할당기 / Scudo