Swift
ARC (Automatic Reference Counter)
Kai1996
2022. 8. 6. 13:31
ARC
- ARC는 메모리 영역 중 힙 영역을 관리한다 .
- 힙 메모리 영역은 인스턴스, 클로저 등 참조타입(reference type) 등이 자동으로 등록 된다. (왜 클로저가 reference Type 인지는 다음 포스트에서 알아보겠다.)
class Person {
let name: String
}
//1
let person1 = Person(name: "Kai")
//2
let person2 = person1
1.0 힙 영역에 Person 인스턴스 메모리 할당, person1 은 stack 영역에서 person Instance 의 메모리 주소를 pointing 하고 있다.
2.0 person2 라는 변수가 stackMemory 에 새로 할당되는데, 똑같은 Heap Memory 의 Person Instance 를 pointing 하게 된다.
person1 = nil
person2 = nil
stackMemory 에 할당되어 있던 변수들을 nil 로 만들어 버리면 더이상 heap 영역의 person Instance 를 사용하는 변수가 없게 된다.
이때 Swift 의 ARC 는 이름 그대로 자동으로 reference 가 참조 되는 횟수를 counting 하고 있다가
0 이 되면 자동으로 메모리 에서 해제 시켜준다.