► 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
반응형