본문 바로가기
Python

[Python] Garbage Collection 파이썬 가비지 콜렉션

by daewooki 2023. 2. 6.
반응형

기존 메모리 관리의 문제점

메모리를 직접 관리해야하는 언어들은 크게 두 가지 관점에서 문제점을 가지고 있다.

필요 없는 메모리를 삭제: 메모리를 사용하고 비우지 않는 경우, 메모리 누수가 발생할 수 있고 장기적인 관점에서 치명적일 수 있음
사용중인 메모리 삭제: 존재하지 않는 메모리에 접근하려고 하면 프로그램이 중단되거나 데이터가 손상될 수 있음
이러한 문제를 해결하기 위해 자동 메모리 관리(Automatic Memory Management) 시스템이 등장하게 되었음


GC module 사용

gc 모듈을 사용하여 가비지 컬렉션 통계를 확인하거나 가비지 컬렉터의 동작을 변경할 수 있다.

 

-- 
gc 모듈을 사용하며 get_threshold() method를 사용하여 가비지 컬렉터의 구성된 임계값을 확인할 수 있다.


>>> import gc
>>> gc.get_threshold()
(700, 10, 10)

 

 

>>> import gc

>>> collected = gc.collect()

>>> print(collected)

 

 

아무것도 수행되지 않은 경우에는 아무것도 출력되지 않는다.

 

보통 gc는 시스템 오류 발생이 적을.. 예를 들면 새벽시간에 cron 스케쥴러로 돌려주는게 좋다고 한다.

 

 

더 자세한 내용은 아래 문서에서 확인할 수 있다.

 

gc — 가비지 수거기 인터페이스 — Python 3.7.14 문서

gc — 가비지 수거기 인터페이스 이 모듈은 선택적인 가비지 수거기에 대한 인터페이스를 제공합니다. 수거기를 비활성화하고, 수거 빈도를 조정하며, 디버깅 옵션을 설정하는 기능을 제공합니

docs.python.org

 

반응형

댓글