Lazy var 그게 몬데? 그냥 private var 이나 쓰면 되지 굳이 이런걸 왜써?
이렇게 생각하면 안댐
직독직해 게으른 변수는 매우 swift에서 메모리적으로 효율적이게 도와준다.
처음 사용되기전까지 연산이 되지 않기에!!
그럼 두번째부턴? 뭐가효율적?
이 그림하나로 lazy var를 어떻게 쓰는지는 완벽하게 설명이된다.
computed Property랑 뭐가 다를까?
바로 처음 사용될때 메모리에 올리고 그 후부터는 그냥 메모리에 올라온값사용! 연산프로퍼티는 사용할때마다 연산을 한다
장점
- 뷰 로드될때 모든 인스턴스를 올린다면 메모리 과부하를 막을수 있다
와 그렇다면? 그냥 모든 규모 큰 변수들을 lazy 처리하게 된다면 앱의 안정성과 효율성은 짱짱 좋아지는 거 아냐?
당연히 ㄴㄴ~!
- 여러개의 쓰레드에서 동시에 접근을 하면 여러개의 변수가 생긴다.
엄격한 쓰레드 처리를 해야함.
1. 이전에 한 씨리얼큐 + Sync로 해결가능! 객체내부에서 시리얼큐로 하나씩들어가도록
2. 아니면 Barrier사용
3. 세마포어사용
작업을 실행하기전에 미리 lazy 변수를 만들어 준 후 작업하는 방식도 있다.
참고
https://www.logilax.com/swift-lazy-variables/
Lazy Variables in Swift with Examples: Complete Guide - Logilax
In Swift, a lazy variable is a variable that gets initialized only when it is called for the first time. To put it another way, using a lazy variable, you can delay the initialization of stored property. This is a great feature due to the limitations in th
www.logilax.com
'면접준비' 카테고리의 다른 글
TaskGroup (0) | 2023.08.13 |
---|---|
Swift Concurrency - Async/Await⭐️ (0) | 2023.08.08 |
디스패치 그룹 (0) | 2023.07.02 |
GCD queue. (0) | 2023.07.02 |
Actor🕴🏻 (0) | 2023.06.29 |