참조 카운트란 무엇인가?
참조 카운트 (Reference Counting)
동적으로 할당된 메모리 주소가 참조될 때마다 count를 1증가 시키고, 참조를 끊을 땐 1감소 시킴으로서 count를 체크하여 0이 될 경우 즉시 메모리를 헤제하는 방식이다. 기존의 알아봤던 스마트 포인터 중 shared_ptr이 참조카운트 방식으로 동작한다.
참조 카운트의 장점
▹ 메모리를 직접 해제하는 번거로움이 사라진다.
▹ 객체의 소유권을 공유할 수 있다.
▹ 빠르다
참조 카운트의 단점
▹ 순환 참조 문제가 있다.(A가 B를 참조, B가 A를 참조시 영원히 해제되지 않는 경우 발생)
▹ 참조회수는 너무 자주 바뀌는데 멀티 쓰레드 환경에서 사용 시 lock이나 atomic연산이 필요하다.
기존의 동적 메모리 할당 해제를 자동으로 해주는 가비지 콜렉터와 스마트 포인터를 알아보았었다. 이 참조 카운트는 가비지 콜렉터와 함께 자주 묶이는 부분이니 다시 한번 가비지 콜렉터도 상기시키면서 공부한 계기가 되었다.
https://doanhan.tistory.com/19
가비지 컬렉터와 스마트 포인터란 무엇인가?
가비지 컬렉터와 스마트 포인터란 무엇인가? 가비지 컬렌션은 무엇인가? 가비지 컬렉션(Garbage Collection)이라고 불리면 약어로 GC라고도 부른다. 메모리를 관리하는 방법 중에 하나로, 시스템에서
doanhan.tistory.com
'Game Programming > 자문자답' 카테고리의 다른 글
맵과 해쉬의 차이는 무엇인가? (0) | 2022.10.12 |
---|---|
STL 벡터와 리스트의 차이는 무엇인가? (0) | 2022.10.09 |
크리티컬 섹션이란 무엇인가? (0) | 2022.09.14 |
렌더링 파이프라인이란 무엇인가? (0) | 2022.09.13 |
가비지 컬렉터와 스마트 포인터란 무엇인가? (2) | 2022.09.13 |