[Swift] ARC란 무엇인가? with 야곰의 스위프트 프로그래밍

참고 : ARC와 값 타입

ARC란

ARC & Garbage Collection

ARC와 Gabage Collection의 메모리 관리 기법 차이점

메모리 관리 기법 ARC Gabage Collection
참조 카운팅 시점 컴파일 시 프로그램 동작 중
Pros 컴파일 당시 이미 인스턴스의 해제 시점이 정해져 있어서 인스턴스가 언제 메모리에서 해제될지 예측할 수 있다.

컴파일 당시 이미 인스턴스의 해제 시점이 정해져 있어 메모리 관리를 위한 시스템 자원을 추가할 필요가 없다. | 상호 참조 상황 등의 복잡한 상황에서도 인스턴스를 해제할 수 있는 가능성이 더 높다.

특별히 규칙에 신경 쓸 필요가 없다. | | Cons | ARC의 작동 규칙을 모르고 사용하면 인스턴스가 메모리에서 영원히 해제되지 않을 가능성이 있다 | 프로그램 동작 외에 메모리 감시를 위한 추가 자원이 필요하므로 한정적인 자원 환경에서는 성능 저하가 발생할 수 있다.

명확한 규칙이 없기 때문에 인스턴스가 정확히 언제 메모리에서 해제될지 예측하기 어렵다. |

상호 참조 상황 : 순환 참조