일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Human interface guide
- 리펙토링
- ribs
- tableView
- swift documentation
- clean architecture
- combine
- 리펙터링
- RxCocoa
- rxswift
- SWIFT
- Xcode
- Clean Code
- uitableview
- map
- 리팩토링
- HIG
- UITextView
- collectionview
- swiftUI
- Protocol
- 클린 코드
- Observable
- ios
- Refactoring
- 스위프트
- uiscrollview
- UICollectionView
- 애니메이션
- MVVM
- Today
- Total
목록메모리 최적화 (2)
김종권의 iOS 앱 개발 알아가기
사전지식) move-only types move-only types에 관한 개념은 이전 포스팅 글인 "consume" 연산자 참고 move-only types는 소유권을 이전하여, copy by value, copy by reference가 아닌 방법으로 성능을 최적화하는것 __consuming 키워드 애플이 구현한 core 레포 중 Sequence를 보면 중간에 __consuming 키워드가 등장하는데, 이는 이 함수의 성능을 최적화하기위해 존재 __consuming은 단어 그대로 해당 키워드가 붙으면 이 함수를 호출하는 인스턴스를 소비한다는 의미이며, 위처럼 _copyToContiguousArray()를 호출하면 해당 인스턴스의 소유권은 반환되는 새로운 인스턴스에 이전된다는 의미 (성능 최적화를 위해..
Move-only Types 개념 효율적으로 값을 인자에 넘겨서 메모리 관리 및 성능 상의 최적화를 하는 방법 (Swift5.9에서 이와 연관된 consume 연산자 탄생) 값을 복사하거나 참조를 넘기는 형태가 아닌, 값의 소유권을 이전한다고 표현 기존에는 특정 과업을 위해서 값을 업데이트 하고 사용한 후 초기화 해주는데, 이 방법은 메모리 관리상 비효율적인 방법 보통 3가지 방법이 존재 1) 배열에 직접 추가 var x = [Int]() x.append(5) x.use() x = [] 2) 함수의 인수에 값을 넘겨서 새로운 값을 업데이트하고난 후 반환된 값으로 다시 변경 x = appendFive(x) x.use() x = [] 3) 함수에 reference를 넘겨서 inout 인수 업데이트 처리 //..