-
[TIL] COW(Copy on Write)iOS/Swift 2022. 1. 10. 18:58
COW(Copy On Write)는 말 그대로 "값을 기록할 때 복사가 일어난다"는 뜻이다.
찾아보니 Memory Management분야에서 Optimization기술 중 하나로 쓰이고 있다고 한다.
Swift에서도 Optimization기술로 쓰이고 있다.
COW는 CollectionType에서 적용이 된다.
CollectionType은 Struct로 구성되어있기 때문에 ValueType이다
아래는 두 변수를 따로 선언해 주었을 때 발생하는 메모리 상황이다.
let a = [1...30] let b = [1...30]
ValueType에서는 대입연산자를 사용할 때 값복사가 일어난다.
하지만 COW가 적용됨으로 인해 메모리주소가 복사되는 현상이 발생한다.
let a = [1...30] let b = a
읽기만 할 때에는 계속 같은 메모리주소를 참조하고 있다가, 쓰기를 할 시점에 기존 값을 복사한 뒤 복사본에 쓰기가 일어난다.
이렇게 해서, 같은 값을 읽기만 할 때에는 기존보다 스택공간을 아낄 수 있게 된다.
'iOS > Swift' 카테고리의 다른 글
[Swift] Protocol에서 Method dispatch (0) 2022.08.21 [Swift] Method dispatch와 V-Table (0) 2022.08.20 [백준] 18258 큐 2 - Swift (0) 2022.06.10 [Swift Grammar] Guard구문에서의 non-Optional 선언 (0) 2022.05.11 [TIL] 참조와 캡쳐 (0) 2022.01.11