Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- CoreData
- NavigationSearchBar
- Array vs Linked List
- 프로그래머스
- firebase
- retain cycle
- Input Output
- class struct
- CarouselCollectionview
- UserDefaults
- @escaping
- 테이블뷰 나누기
- Carousel CollectionView
- TableView
- ReferceCycle
- Reference Cycle
- til
- 면접을 위한 CS전공 지식 노트
- SWIFT
- TableView Section
- wil
- UIKit
- tableview section별 다른 cell적용
- 롤케이크 자르기
- 면접을 위한 CS 전공 지식 노트 Tree
- 강한 참조 순환
- coremotion
- 양궁대회
- Value Type Reference Type
- 자료구조
Archives
- Today
- Total
개발하는 동글 :]
[TIL],[Swift],[ArraySlice],[COW] 본문
ArraySlice란 ?
struct ArraySlice<Element>
ArraySlice : Array, ContiguousArray 또는 ArraySlice 인스턴스의 slice
ArraySlice타입의 특징
- 더 큰 배열의 section에서 작업을 빠르고 호율적으로 수행 할 수 있다.
- 슬라이스 요소를 새 저장소로 복사하는 대신, ArraySlice인스턴스는 더 큰 배열의 저장소에 대한 view를 제공 -> COW
- COW 란? (Copy On Write)
- 컴퓨터 프로그래밍에서 복사 동작을 할 때,실제 원본이나 복사본이 수정되기 전까지는 복사를 하지 않고 원본 리소스를 공유함
- 원본이나 복사본에서 수정이 일어날 경우, 그때 복사하는 작업을 함
- 또한 ArraySlice는 Array와 동일한 인터페이스를 제공하므로, 일반적으로 ArraySlice에서 원래 Array와 동일한 작업을 수행 할 수 있다.
- ArraySlice를 또 slice해도 ArraySlice
주의 사항
- ArraySlice인스턴스의 장기보관은 권장하지 않는다.
- slice는 원래 배열의 수명이 끝난 후에도 더 큰 배열의 전체 저장소에 대한 참조를 제공한다. 따라서, slice의 장기간 저장은 더이상 접근 할 수 없는 요소의 수명을 연장시킬 수 있으며, 이는 메모리 및 객체 누출로 나타날 수 있다.