Super Kawaii Cute Cat Kaoani 파이썬 메모리에서 객체 지우기

연구/Python

파이썬 메모리에서 객체 지우기

치킨고양이짱아 2023. 4. 4. 15:40
728x90
728x90

파이썬 메모리에서 객체를 지우고 싶을때는 del 키워드gc.collect()를 같이 사용해야한다.

del 키워드만 사용해서 객체를 지울경우 네임스페이스에서 해당 객체가 사라져 참조는 안되지만 여전히 메모리상에 객체가 존재하는 상태이기 때문에 꼭 gc.collect()를 같이 해주어야한다.

import gc

a = Motion()

# a를 메모리 상에서 지우는 과정
del a
gc.collect()

gc.collect()에 대한 설명을 덧붙이자면, gc.collect()는 순환 참조 탐지 알고리즘을 통해 도달가능한 객체(reachable)도달 불가능한 객체(unreachable)로 구분한다.여기서 도달 가능한 객체의 경우 세대를 이동시키고, 도달 불가능한 객체의 경우 콜백을 수행 후 메모리에서 해제된다.

이때 gc.collect()가 반환하는 값은 점유된 객체 숫자와 메모리가 해제된 객체 숫자를 의미한다.

728x90
728x90