From 1acfbea96c147b8e61b2ebaea99bf71ee91595ac Mon Sep 17 00:00:00 2001 From: 4roring <4roring@users.noreply.github.com> Date: Mon, 17 Jul 2023 07:23:04 +0000 Subject: [PATCH] deploy: 1678df07a0fbc4103d46a00327688bb9e3068269 --- _images/01_C_memory_allocation.png | Bin 0 -> 24585 bytes _images/02_cpython_memory_hierarchy.png | Bin 0 -> 58848 bytes _images/03_arena.jpg | Bin 0 -> 19638 bytes _images/04_pool.png | Bin 0 -> 55282 bytes _sources/docs/9_0_memory.md | 128 +++++++++++++++- docs/9_0_memory.html | 188 +++++++++++++++++++++++- searchindex.js | 2 +- 7 files changed, 315 insertions(+), 3 deletions(-) create mode 100644 _images/01_C_memory_allocation.png create mode 100644 _images/02_cpython_memory_hierarchy.png create mode 100644 _images/03_arena.jpg create mode 100644 _images/04_pool.png diff --git a/_images/01_C_memory_allocation.png b/_images/01_C_memory_allocation.png new file mode 100644 index 0000000000000000000000000000000000000000..0e8762e7f142abfe6550a5e0e5eb7162d017fefc GIT binary patch literal 24585 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 sNgl(m#96wE{a4;xQ6djJ3c literal 0 HcmV?d00001 diff --git a/_images/02_cpython_memory_hierarchy.png b/_images/02_cpython_memory_hierarchy.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4d5999843d7e371c984e4aa59140c6db222381 GIT binary patch literal 58848 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

Qq}=b$QhJ68F_Gf1x`L_ePK!m=-p3{ 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 q=8*xXP*MX#0jA(2v&*FiA;~;ETC^{ESs*gZ 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ÐWnr}HWoGrgpGqo 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 V2nA*S!+yEnT*d#7UeS=#{|i%!RHXm_ literal 0 HcmV?d00001 diff --git a/_images/04_pool.png b/_images/04_pool.png new file mode 100644 index 0000000000000000000000000000000000000000..4d8c53e7144a951f4fca53a0759200b20f234562 GIT binary patch literal 55282 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

F6IFE})We3y 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

x75Dfw_CFSJ^UeF9`|PS$lVX*)=>uw2N* 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 literal 0 HcmV?d00001 diff --git a/_sources/docs/9_0_memory.md b/_sources/docs/9_0_memory.md index aa05552..bc2043c 100644 --- a/_sources/docs/9_0_memory.md +++ b/_sources/docs/9_0_memory.md @@ -1 +1,127 @@ -# 메모리 관리 \ No newline at end of file +# 메모리 관리 + +- [메모리 관리](#메모리-관리) + - [9.0 개요](#90-개요) + - [9.1 C 메모리 할당](#91-C-메모리-할당) + - [9.2 파이썬 메모리 관리 시스템의 설계](#92-파이썬-메모리-관리-시스템의-설계) + - [9.3 CPython 메모리 할당자 (pymalloc)](#93-CPython-메모리-할당자) + +
+ +## 9.0 개요 + +동적 타입 언어인 CPython에서 메모리를 어떻게 할당 하고 해제하는지 그리고 메모리 누수를 관리 하는 방법에 대해서 알아 보겠습니다. +
+ +## 9.1 C 메모리 할당 + +![C_memory_allocation](../images/9_memory/01_C_memory_allocation.png) + + +CPython을 구현하는 C 언어에서의 메모리 할당은 크게 3가지로 나뉩니다. + +1. 정적 메모리 할당(Static) : 컴파일 시간에 필요한 메모리가 계산되고 프로그램이 실행될 때 할당 +2. 자동 메모리 할당(Stack) : 함수 실행시에 스코프에 필요한 지역 변수가 콜 스택에 할당 +3. 동적 메모리 할당(Heap) : 런타임에 메모리를 동적으로 할당하며 제대로 반환하지 않으면 메모리 누수 발생 +
+ +## 9.2 파이썬 메모리 관리 시스템의 설계 + +메모리 관점에서 파이썬 언어 설계의 특징 + +1. 변수의 크기를 컴파일 시간에 정할 수 없음 +2. 코어 타입의 크기가 가변적임 (list, dict, int) +3. 타입이 달라도 같은 이름을 재사용 가능 + +파이썬 객체 메모리는 개발자가 직접 할당 하는 대신 파이썬 언어에서 제공하는 메모리 할당 API에 의해 자동으로 할당됩니다. + +메모리 할당 API는 C언어의 동적 메모리 할당에 의존하여 개발되었으며 메모리 누수를 막기 위해 가비지 컬렉션과 참조 카운팅을 사용해 메모리를 자동으로 해제하는 안전장치가 추가되어 있습니다. + +![Cpython_memory_hierarchy](../images/9_memory/02_cpython_memory_hierarchy.png) +[이미지 출처][link01] + +[link01]: https://velog.io/@qlgks1/python-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B4%80%EB%A6%AC-memory-optimization + +CPython은 세가지 동적 메모리 할당자 도메인을 제공합니다. + +1. PYMEM_DOMAIN_OBJ : 파이썬 객체 메모리 할당 +2. PYMEM_DOMAIN_MEM : 레거시 API용도 https://github.com/python/cpython/blob/89867d2491c0c3ef77bc237899b2f0762f43c03c/Objects/obmalloc.c#L94C32-L94C32 +3. PYMEM_DOMAIN_RAW : 시스템 힙, 대용량 메모리, 비 객체 메모리 할당 + +PYMEM_DOMAIN_MEM,PYMEM_DOMAIN_OBJ 할당자의 경우 기본 할당자로 pymalloc을 사용하며 GIL이 있는 상태에서 사용됩니다. PYMEM_DOMAIN_RAW의 경우에는 뮤텍스를 사용하여 스레드 안정성을 확보하며 malloc을 사용하여 시스템에서 직접 메모리를 할당 받습니다. + +각 도메인은 _Alloc, _Calloc, _Realoc, _Free 인터페이스를 구현합니다. +
+ +## 9.3 CPython 메모리 할당자 (pymalloc) + +CPython의 메모리 할당 요청은 일반적으로 아래 표와 같이 고정된 크기의 작은 메모리를 요구 합니다. + +| CPython OBject | Size | +|------|---| +| PyObject | 16byte | +| PyASCIIObject | 42byte | +| PyCompactUnicodeObject | 72byte | +| PyLongObject | 32byte | + +이러한 메모리 사용 패턴에서 메모리 할당을 위해 C언어의 malloc 및 free를 반복적으로 호출하는 경우 시스템 오버헤드를 발생 시키며 프로그램이 장기간 유지되는 경우 메모리 파편화를 유발 할 수 있습니다. + +CPython의 메모리 할당자는 시스템 할당자 위에 구축되어 있지만 CPython에 특화 되어 있습니다. +메모리 할당 알고리즘은 아레나/풀/블록 으로 계층화된 구조로 메모리를 할당 합니다. + + + + + 1. 아레나(Arena) + - 가장 큰 단위의 메모리 그룹 + - 256KB 단위로 할당 + - 시스템 페이지 크기에 맞춰 정렬 + - 시스템 힙에 할당 + - 익명 메모리 매핑을 지원 하는 시스템에서 mmap()로 할당 + - 아레나들은 이중 연결 리스트로 연결 되어 있음 + +![Cpython_memory_arena](../images/9_memory/03_arena.jpg) +[이미지 출처][link02] + +[link02]: https://fanchao01.github.io/blog/2016/10/09/python-obmalloc/ + + 2. 풀(Pool) + - 메모리 풀에는 같은 크기의 블록들이 저장 + - 풀에 담을 수 있는 블록의 최대 크기는 512byte + - 풀의 크기는 4096byte(=4KB)로 고정 + - 아레나당 풀 개수도 64개로 고정 (64*4KB = 256KB) + - 같은 단위를 가지는 풀들은 풀 테이블(이중 연결 리스트)로 연결 + - 풀 테이블은 크기 인덱스 i로 분할 + - 인덱스가 i 일 때 usedpools[i+i]는 크기 단위가 i 인 사용 중인 풀 리스트의 헤더를 가리킴 + - 풀이 포화 상태가 되면 usedpools 리스트에서 제거 + - 풀에 있는 블록이 할당 해제되면 다시 usedpools[] 리스트 맨 앞에 배치되어 다음 할당 요청에 사용 + - 풀의 모든 블록이 할당 해제되면 usedpools 리스트에서 제거되고 freepools 맨 앞으로 이동 + - 풀의 상태 + - 포화 : 모든 블록 할당 + - 사용중 : 일부 블록 할당 + - 미사용 : 풀은 할당 되었지만, 블록은 미 할당 + +![Cpython_memory_pool](../images/9_memory/04_pool.png) +[이미지 출처][link03] + +[link03]: https://www.blog.subhashkumar.in/posts/python-memory-management/ + + + 3. 블록(Block) + - 풀 내부에서 메모리는 블록 단위로 할당 + - 블록은 고정 크기로 할당, 해제 + - 사용되지 않은 블록은 풀 내부의 freeblock 에 연결 + - 할당 해제된 블록은 freeblock 맨 앞에 연결 + - 풀이 초기화 되면 첫 두 블록은 freeblock 리스트에 연결 + - 블록 할당 과정 + - 인덱스 설정 + - 32bit 시스템에서는 블록 크기가 8byte 단위로 증가하므로 64가지 블록 크기 사용 가능 + - 64bit 시스템에서는 블록 크기가 16byte 단위로 증가하므로 32가지 블록 크기 사용 가능 + - 할당 요청된 크기에 따라 적합한 크기 인덱스가 결정 + - 할당 요청이 0 + + @@ -354,7 +356,9 @@ `); - + @@ -370,6 +374,17 @@

메모리 관리

@@ -381,6 +396,160 @@

메모리 관리

메모리 관리#

+
    +
  • 메모리 관리

    +
      +
    • 9.0 개요

    • +
    • 9.1 C 메모리 할당

    • +
    • 9.2 파이썬 메모리 관리 시스템의 설계

    • +
    • 9.3 CPython 메모리 할당자 (pymalloc)

    • +
    +
  • +
+
+
+

9.0 개요#

+

동적 타입 언어인 CPython에서 메모리를 어떻게 할당 하고 해제하는지 그리고 메모리 누수를 관리 하는 방법에 대해서 알아 보겠습니다. +

+
+
+

9.1 C 메모리 할당#

+

C_memory_allocation

+

CPython을 구현하는 C 언어에서의 메모리 할당은 크게 3가지로 나뉩니다.

+
    +
  1. 정적 메모리 할당(Static) : 컴파일 시간에 필요한 메모리가 계산되고 프로그램이 실행될 때 할당

  2. +
  3. 자동 메모리 할당(Stack) : 함수 실행시에 스코프에 필요한 지역 변수가 콜 스택에 할당

  4. +
  5. 동적 메모리 할당(Heap) : 런타임에 메모리를 동적으로 할당하며 제대로 반환하지 않으면 메모리 누수 발생 +

  6. +
+
+
+

9.2 파이썬 메모리 관리 시스템의 설계#

+

메모리 관점에서 파이썬 언어 설계의 특징

+
    +
  1. 변수의 크기를 컴파일 시간에 정할 수 없음

  2. +
  3. 코어 타입의 크기가 가변적임 (list, dict, int)

  4. +
  5. 타입이 달라도 같은 이름을 재사용 가능

  6. +
+

파이썬 객체 메모리는 개발자가 직접 할당 하는 대신 파이썬 언어에서 제공하는 메모리 할당 API에 의해 자동으로 할당됩니다.

+

메모리 할당 API는 C언어의 동적 메모리 할당에 의존하여 개발되었으며 메모리 누수를 막기 위해 가비지 컬렉션과 참조 카운팅을 사용해 메모리를 자동으로 해제하는 안전장치가 추가되어 있습니다.

+

Cpython_memory_hierarchy
+이미지 출처

+

CPython은 세가지 동적 메모리 할당자 도메인을 제공합니다.

+
    +
  1. PYMEM_DOMAIN_OBJ : 파이썬 객체 메모리 할당

  2. +
  3. PYMEM_DOMAIN_MEM : 레거시 API용도 python/cpython

  4. +
  5. PYMEM_DOMAIN_RAW : 시스템 힙, 대용량 메모리, 비 객체 메모리 할당

  6. +
+

PYMEM_DOMAIN_MEM,PYMEM_DOMAIN_OBJ 할당자의 경우 기본 할당자로 pymalloc을 사용하며 GIL이 있는 상태에서 사용됩니다. PYMEM_DOMAIN_RAW의 경우에는 뮤텍스를 사용하여 스레드 안정성을 확보하며 malloc을 사용하여 시스템에서 직접 메모리를 할당 받습니다.

+

각 도메인은 _Alloc, _Calloc, _Realoc, _Free 인터페이스를 구현합니다. +

+
+
+

9.3 CPython 메모리 할당자 (pymalloc)#

+

CPython의 메모리 할당 요청은 일반적으로 아래 표와 같이 고정된 크기의 작은 메모리를 요구 합니다.

+ + + + + + + + + + + + + + + + + + + + +

CPython OBject

Size

PyObject

16byte

PyASCIIObject

42byte

PyCompactUnicodeObject

72byte

PyLongObject

32byte

+

이러한 메모리 사용 패턴에서 메모리 할당을 위해 C언어의 malloc 및 free를 반복적으로 호출하는 경우 시스템 오버헤드를 발생 시키며 프로그램이 장기간 유지되는 경우 메모리 파편화를 유발 할 수 있습니다.

+

CPython의 메모리 할당자는 시스템 할당자 위에 구축되어 있지만 CPython에 특화 되어 있습니다. +메모리 할당 알고리즘은 아레나/풀/블록 으로 계층화된 구조로 메모리를 할당 합니다.

+
    +
  1. 아레나(Arena)

    +
      +
    • 가장 큰 단위의 메모리 그룹

    • +
    • 256KB 단위로 할당

    • +
    • 시스템 페이지 크기에 맞춰 정렬

    • +
    • 시스템 힙에 할당

    • +
    • 익명 메모리 매핑을 지원 하는 시스템에서 mmap()로 할당

    • +
    • 아레나들은 이중 연결 리스트로 연결 되어 있음

    • +
    +
  2. +
+

Cpython_memory_arena
+이미지 출처

+
    +
  1. 풀(Pool)

    +
      +
    • 메모리 풀에는 같은 크기의 블록들이 저장

    • +
    • 풀에 담을 수 있는 블록의 최대 크기는 512byte

    • +
    • 풀의 크기는 4096byte(=4KB)로 고정

    • +
    • 아레나당 풀 개수도 64개로 고정 (64*4KB = 256KB)

    • +
    • 같은 단위를 가지는 풀들은 풀 테이블(이중 연결 리스트)로 연결

    • +
    • 풀 테이블은 크기 인덱스 i로 분할

      +
        +
      • 인덱스가 i 일 때 usedpools[i+i]는 크기 단위가 i 인 사용 중인 풀 리스트의 헤더를 가리킴

      • +
      • 풀이 포화 상태가 되면 usedpools 리스트에서 제거

      • +
      • 풀에 있는 블록이 할당 해제되면 다시 usedpools[] 리스트 맨 앞에 배치되어 다음 할당 요청에 사용

      • +
      • 풀의 모든 블록이 할당 해제되면 usedpools 리스트에서 제거되고 freepools 맨 앞으로 이동

      • +
      +
    • +
    • 풀의 상태

      +
        +
      • 포화 : 모든 블록 할당

      • +
      • 사용중 : 일부 블록 할당

      • +
      • 미사용 : 풀은 할당 되었지만, 블록은 미 할당

      • +
      +
    • +
    +
  2. +
+

Cpython_memory_pool
+이미지 출처

+
    +
  1. 블록(Block)

    +
      +
    • 풀 내부에서 메모리는 블록 단위로 할당

    • +
    • 블록은 고정 크기로 할당, 해제

    • +
    • 사용되지 않은 블록은 풀 내부의 freeblock 에 연결

    • +
    • 할당 해제된 블록은 freeblock 맨 앞에 연결

    • +
    • 풀이 초기화 되면 첫 두 블록은 freeblock 리스트에 연결

    • +
    • 블록 할당 과정

      +
        +
      • 인덱스 설정

        +
          +
        • 32bit 시스템에서는 블록 크기가 8byte 단위로 증가하므로 64가지 블록 크기 사용 가능

        • +
        • 64bit 시스템에서는 블록 크기가 16byte 단위로 증가하므로 32가지 블록 크기 사용 가능

        • +
        • 할당 요청된 크기에 따라 적합한 크기 인덱스가 결정

        • +
        • 할당 요청이 0<x≤512 인 경우 크기 인덱스는 다음과 같이 정의

          +
            +
          • 32bit 시스템 : \(i = ceil(x/8) - 1\)

          • +
          • 64bit 시스템 : \(i = ceil(x / 16) - 1\)

          • +
          +
        • +
        • 인덱스에 따라 크기에 맞는 풀이 할당 대상으로 결정

        • +
        +
      • +
      • 풀 확인

        +
          +
        • 할당 가능한 풀이 있는 지 확인하고 사용되지 않은 블록 사용

        • +
        • 사용 가능한 풀이 없으면 새 풀을 생성하고 새 풀의 첫 블록을 반환

        • +
        +
      • +
      +
    • +
    +
  2. +
+
@@ -438,6 +607,23 @@

메모리 관리 +