CODEDRAGON ㆍDevelopment/Python
약한 참조 (Weak Reference)
· 레퍼런스 카운트(reference count)로 고려되지 않는 참조 객체를 생성합니다.
· 내장 자료형 객체 (리스트, 튜플, 사전 등)에 대해서는 약한 참조를 만들 수 없습니다.
약한 참조의 필요성
· 레퍼런스 카운트가 증가되지 않으므로 순환 참조가 방지됩니다.
· 다양한 인스턴스들 사이에서 공유되는 객체에 대한 일종의 캐시(Cache)를 만드는 데 활용됩니다.
· 즉, 실제 객체가 사라지면 캐시역할을 하는 약한 참조에서도 해당 아이템이 제거되므로 효율적인 객체 소멸 관리가 가능합니다.
순환 참조 (Cyclic Reference)
· 서로 다른 객체들 사이에 참조 방식이 순환 형태로 연결되는 방식을 의미합니다.
· 주기적으로 순환 참조를 조사하여 쓰레기 수집하는 기능이 있지만, CPU 자원 소비가 많습니다. 쓰레기 수집 빈도가 낮으면↓ 순환 참조되는 많은 객체들이 메모리를 쓸데없이 점유하게 됩니다.
약한 참조 모듈
· weakref.ref(o)
· weakref.proxy(o)
'Development > Python' 카테고리의 다른 글
weakref.proxy() (0) | 2020.02.16 |
---|---|
weakref.ref() (0) | 2020.02.16 |
generator Expression (0) | 2020.02.16 |
import (0) | 2020.02.16 |
클래스 간의 관계 확인 (0) | 2020.02.16 |