위키득계정 ↗
기술

Heap Layers

Heap Layers기술
분류
할당기 구성 기반
구현 방식
C플러스플러스 계층과 템플릿
활용 예
사용자 정의 및 범용 할당기
관련 프로젝트
Hoard와 DieHard
Heap Layers는 C플러스플러스 계층을 조합해 메모리 할당기를 구성하는 기반 라이브러리다. 용도별 할당 정책을 재사용 가능한 구성 요소로 나누어 개발하도록 한다.

정책을 나누어 조합

메모리를 얻고 분류하며 반환하는 동작을 여러 구성 요소로 나누어 결합한다. 완성된 할당기를 하나 선택하는 것과 달리 필요한 정책을 직접 구성하는 접근이다. 이미 제공되는 구성 요소를 활용해 반복 구현을 줄일 수 있다.

템플릿 기반의 연결

C플러스플러스 템플릿으로 계층을 연결해 컴파일러가 호출 관계와 최적화 기회를 볼 수 있도록 한다. 높은 수준의 조합이 언제나 비용 증가를 의미하지는 않는다. 그렇다고 모든 조합이 어떤 직접 구현보다 빠르다고 일반화할 수도 없다.

조합의 검증

각 구성 요소가 올바르더라도 정렬과 소유권, 동시성 등 서로 기대하는 계약이 맞아야 한다. 실제 할당 패턴에서 공간 사용과 처리량을 측정한다. Hoard와 DieHard 같은 활용 사례도 서로 목적과 정책이 다르므로 구분해 살핀다.

관련 문서

Hoard 할당기 / DieHard / Mesh 메모리 할당기 / TLSF