CPython의 메모리 할당 시스템-1
CPython의 메모리 할당 시스템
Python의 기본 구현체 CPython의 메모리 할당 시스템은
C의 동적 메모리 할당 시스템에 의존한다.
CPython과 C의 동적 메모리 할당 시스템
중간 계층에 속하는 PyMemAPI은
메모리 관리의 단순화를 통해
프로그래머가 애플리케이션 로직에 집중할 수 있다.
메모리 관리의 단순화라고 하면은,
프로그래머가 직접 객체나 변수에 할당된 메모리를 해제하는 것이 아니라
(메모리 할당 해제 소스코드를 작성함으로써)
런타임 상에서 제공하는 GC, 참조 카운팅 기법을 사용하여
메모리를 자동으로 해제한다.
참조 카운팅 API
- Py_INCREF : 값에 의존할 때 증가한다.
- Py_DECREF : 값에 의존하지 않을 때 감소한다.
참조 카운트 값이 0이 될 때 자동으로 해제된다.
- Py_DECREF : 값에 의존하지 않을 때 감소한다.
참조 카운트 값이 0이 될 때 자동으로 해제된다.
음수가 되기 시작한다는 것은
증감 연산의 짝이 맞지 않는다는 뜻이며
참조 카운팅에 결함이 생긴 것이다.
코드 로직 상 '순환 참조' 가 일어날 때도 생기는데
'순환 참조'를 해결하기 위한 GC가 Background에서 구동된다.
증감 연산의 짝이 맞지 않는다는 뜻이며
참조 카운팅에 결함이 생긴 것이다.
코드 로직 상 '순환 참조' 가 일어날 때도 생기는데
'순환 참조'를 해결하기 위한 GC가 Background에서 구동된다.

댓글
댓글 쓰기