약한 참조 (Weak Reference)

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