위키득계정 ↗
기술

Hoard 할당기

Hoard 할당기기술
주요 역할
메모리 할당기
주요 환경
다중 스레드와 다중 처리 장치
대체 인터페이스
malloc 등
핵심 관심
경합과 거짓 공유 및 메모리 증가
Hoard는 여러 스레드와 처리 장치가 있는 환경의 메모리 할당을 위한 도구다. malloc을 대체하는 방식으로 연결하며 할당 요청의 경합과 거짓 공유 및 스레드 수에 따라 늘어나는 메모리 부담을 주요 설계 문제로 다룬다.

동시에 들어오는 할당 요청

여러 스레드가 같은 할당기의 자원을 기다리면 메모리 관리가 병목이 될 수 있다. Hoard는 다중 처리 장치에서 이런 동기화 부담을 줄이도록 설계되었다. 할당과 해제가 많은 응용에서 실행 규모와 메모리 관리의 관계를 고려한다.

거짓 공유와 메모리 부담

다른 스레드가 쓰는 객체가 같은 캐시 라인에 놓이면 불필요한 캐시 간섭이 생길 수 있다. Hoard는 이러한 거짓 공유를 피하는 것을 설계 목표로 삼는다. 스레드와 처리 장치가 늘 때 할당기의 메모리 보유량이 과도하게 증가하는 문제도 함께 다룬다.

기존 응용과의 연결

프로그램에 라이브러리를 연결하거나 지원 환경에서 기본 할당 함수를 대체해 사용할 수 있다. Linux와 macOS 및 Windows 등의 환경을 지원한다. 실제 연결 방식은 운영체제와 실행 파일의 런타임 연결 조건에 따라 달라진다.

관련 문서

jemalloc / mimalloc / snmalloc / gperftools / 메모리 관리 / 프로세스