THIS IS ELLIE

스위프트 Copy-On-Write 본문

개발/Swift

스위프트 Copy-On-Write

Ellie Kim 2019. 3. 29. 16:59

Copy-On-Write는 구조체를 복사할 때 성능을 향상시키는 기술입니다. 

 

Ex) 1000 개의 요소가있는 배열이 있습니다.

배열을 다른 변수에 복사 한 경우, Swift는 두 배열이 같은 경우에도 1000 개의 요소를 모두 복사해야 합니다.

하지만 이 문제는 copy on write를 사용하여 해결됩니다.

 

동일한 배열에서 두 변수를 가리킬 때 둘 다 동일한 기본 데이터를 가리 킵니다.

 

즉 Copy on write는 복사 작업이 실제로 필요할 때까지 지연시켜 Swift는 낭비되는 작업이 수행되지 않도록 할 수 있습니다.

 

간단한 예를 들어 확인해봅니다.

a에는 1부터 10까지 저장된 배열을 선언했습니다.

b에는 a를 할당했습니다. 

 

copy on write가 되지 않는다면 addressOf(b)를 찍었을 때 a와 다른 주소 값을 가지게 됩니다.

하지만 같은 참조값을 가집니다.

실제로 b가 변경되었을 때 새로운 참조값을 가지게 됩니다.

 

참조)

https://developer.apple.com/documentation/swift/array

 

'개발 > Swift' 카테고리의 다른 글

Swift String Substring  (0) 2019.04.12
isEmpty와 count == 0 비교하기  (2) 2019.04.05
reverse()와 reversed()비교  (0) 2019.03.24
Swift functions sequence, stride, swap  (0) 2019.03.08
Swift functions abs,assert,assertionFailure  (0) 2019.03.07