► Swift
[작성중] [Swift] COW (Copy-on-Write)
다람트리
2023. 6. 30. 20:40
반응형
두서없이 써논 글입니다!
//[ COW (Copy-on-Write) ]
// 복사작업을 할때, 복사했을때는 복사본이 원본으로 유지되고, 복사본에서 수정이 이루워지면 그때 리얼복사본으로 바뀜.
// 아래의 코드는 이해를 돕기위하여 생략된 코드임. 작동은 에러남
var array1:[Int] = [1,2,3,4] // [1, 2, 3, 4]
var array2:[Int] = array1 // [1, 2, 3, 4]
//address(of: array1) //"출처1"
//address(of: array2) //"출처1"
//cow
array1[0] = 1
//address(of: array1) //"출처2"
//address(of: array2) //"출처1"
//장점: 처음엔 참조만하고, 실제로 수정될 때 복사를 해서 불필요한 메모리를 줄임.
//단점: 첫 수정작업을 할 때 (복사하는시간) cow 때문에 실행이 좀 더딤. (오버헤드를 발생시키는 느낌적느낌으로 추측)
//cow
measureTime{
array1[0] = 1
} //23.49......ms (0.023초)
measureTime{
array1[1] = 1
} //0.15......ms
반응형