티스토리 뷰

IOS/swift

[Swift] Method Dispatch 와 성능 최적화

내일도이렇게 2022. 4. 5. 11:36

Method Dispatch 

스위프트가 어떻게 해당 메소드를 실행할지 정하는 것 

 

 

Direct, Table, Message Dispatch 3가지 방식이 있다. 

 

Direct Dispatch (Static) 

컴파일 타임에 결정이 되며 가장 빠르고 밸류 타입 (구조체/ 열거형) 에 사용된다. 

하지만 다형성을 활용하기가 어렵다. 

 

Table Dispatch (Dynamic)

런타임 타임에 결정이 되며 중간 속도로  클래스 / 프로토콜 에 사용된다. 

 

Message Dispatch 

런타임 타임에 결정이 되며 , 가장 느리고 Objective-C 클래스 에서 사용된다. 

 

 

 

성능 최적화를 위해  direct dispatch 사용 

 

1. 오버라이드 될 필요 없는 요소들에는 final 키워드 사용

 ex)  final class 

 

2. private 키워드 사용

 

3. class 보다는 struct 와 enum 사용 

 

 

 


Reference

https://ios-development.tistory.com/816

https://jcsoohwancho.github.io/2019-10-11-Dynamic-Dispatch%EC%99%80-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94/

https://ios-development.tistory.com/816

'IOS > swift' 카테고리의 다른 글

[Swift] 클로저와 메모리 관리  (0) 2022.04.06
[Swift] ARC  (0) 2022.04.05
[Swift] Optional  (0) 2022.03.22
[Swift] Codable  (0) 2022.03.22
Property wrapper (UserDefaults 적용)  (0) 2022.03.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함