메모리풀은 메모리 할당과 해제를 효율적으로 관리하기 위한 메모리 관리 기법이다.
시스템의 일반적인 동적 메모리 할당 대신 미리 할당된 메모리 블록들을 재사용하여 성능을 향상시키는 방식이다.

 

📌 핵심 개념

메모리풀은 프로그램 시작 시 큰 메모리 블록을 미리 할당하고, 이를 작은 단위로 나누어 관리한다. 

프로그램이 메모리를 요청하면 풀에서 사용 가능한 블록을 할당하고, 사용이 끝나면 다시 풀로 반환한다.

 

📌 일반 메모리 할당 vs 메모리풀

일반 메모리 할당(malloc/new)

  • 운영체제에 메모리 요청
  • 메모리 단편화 발생 가능
  • 할당/해제 시스템 콜 오버헤드
  • 예측 불가능한 할당 시간

메모리풀

  • 미리 할당된 메모리에서 빠른 할당
  • 단편화 최소화
  • 예측 가능한 성능
  • 시스템 콜 오버헤드 감소

 

📌 메모리풀 유형

  1. 고정 크기 블록 풀: 모든 블록이 동일한 크기로 관리되는 방식
  2. 가변 크기 블록 풀: 다양한 크기의 블록을 지원하는 방식
  3. 스택 기반 풀: LIFO 방식으로 메모리를 할당/해제하는 방식
  4. 링 버퍼 풀: 순환 버퍼 형태로 메모리를 관리하는 방식

'언어 > C' 카테고리의 다른 글

[C] 오브젝트풀(Object Pool)  (0) 2025.06.14
[C] Lock-free Stack  (0) 2025.06.14
[C] Lock-free 알고리즘  (0) 2025.06.13
[C] TLS ( Thread Local Storage ) - 스레드 지역 저장소  (0) 2025.06.13
[C] HANDLE 닫고 NULL 넣는 이유  (0) 2025.06.02

+ Recent posts