- 메모리 풀 vs 범용 메모리 할당자
- 범용 메모리 할당자인 malloc 은 표준 라이브러리의 일부임.
- 설계 및 구현이 비교적 복잡함.
- 메모리 풀은 응용 프로그램의 일부임.
- 설계 및 구현이 비교적 간단함.
- 특정 상황에서만 메모리 할당 성능을 최적화하기에 범용성이 매우 떨어짐.
- 메모리 풀 기술의 원리
- 한 번에 큰 메모리 조각을 요청하고 그 위에서 자체적으로 메모리 할당과 해제를 관리하는 방식임.
- 표준 라이브러리와 운영 체제를 우회함.
- 특정 사용 패턴에 따라 최적화도 가능함.
- ex) 서버에서 사용자 요청을 처리할 때마다 여러 종류의 객체를 생성해야 한다면, 자체 메모리 풀에서 미리 이 객체를 생성해 두는 것이 가능함.
- 초간단 메모리 풀 구현
- ex) 서버 프로그래밍
- 단 한 종류의 객체만 사용한다면, 미리 객체를 메모리로 생성하여 실제 사용할 때마다 하나쌕 꺼냄.
- 사용이 끝나면 반환함.
- 특정 객체나 데이터 구조만 할당할 수 있다는 한계가 있음.
'Book > 컴퓨터 밑바닥의 비밀' 카테고리의 다른 글
책너두 (컴퓨터 밑바닥의 비밀) 20일차 왜 SSD는 메모리로 사용할 수 없을 까? (0) | 2024.05.08 |
---|---|
책너두 (컴퓨터 밑바닥의 비밀) 19일차 대표적인 메모리 관련 버그 (0) | 2024.05.07 |
책너두 (컴퓨터 밑바닥의 비밀) 17일차 메모리 할당할 때 저수준 계층에서 일어나는 일 (0) | 2024.05.03 |
책너두 (컴퓨터 밑바닥의 비밀) 16일차 힙 영역 2 (0) | 2024.05.02 |
책너두 (컴퓨터 밑바닥의 비밀) 15일차 힙 영역 1 (0) | 2024.04.30 |