Swift | final 키워드로 성능 올리기

youjin·2022년 8월 31일
0
post-thumbnail

저는 어디서 finalclass 앞에 작성하면 성능이 올라간다고 했던 것을 보고 항상 final class 하곤 했는데요.
final 이 정확히 어떤 동작을 하는 건지 궁금해서 블로그 작성해보기 (ᴗ͈ˬᴗ͈)ꕤ.゚

final 관련한 애플 공식 문서를 찾아보니 Increasing Performance by Reducing Dynamic Dispatch 즉, Dynamic Dispatch 를 줄여 성능 향상을 한다는 제목의 글에서 final 이 보였어요.

그럼 final 을 알아보기 전 Dynamic Dispatch 관련해서 공부를 먼저 해봅시다 ( ˘-˘)ว



Dynamic Dispatch

Dynamic DispatchMethod Dispatch의 한 종류에요.
그럼 또 Method Dispatch 에 대해서 알아보고 나서 Dynamic Dispatch로 다시 돌아와봅시다..? 헤헷


Method Dispatch

Method Dispatch는 어떤 연산(operation)을 어떻게 실행해야하는지 결정하도록 돕는 메커니즘으로, 더 정확히 말하자면 한 앱에서 어떤 메소드가 호출될 때 해당 메소드를 실행할 방법을 선택하는 것 입니다.

헷. 오늘도 한국말이지만 이해가 안가는 ~~ 🤍

일단 계속해서 Static Dispatch, Dynamic Dispatch 에 대해 알아봅시다. 그럼 무슨 말인지 조금은 이해가 갈 수 있을 거에요.


Dynamic Dispatch

Dynamic Dispatch 즉, 동적 디스패치는 런타임 시에 호출될 함수를 결정합니다. Dynamic Dispatch는 virtual table을 들여다보고 특정 메소드의 구현을 체크한 후에 호출될 함수를 결정합니다.




보완중 . . .





참고자료

https://klioop.tistory.com/38
https://sihyungyou.github.io/iOS-method-dispatch/
https://babbab2.tistory.com/143
https://docs.swift.org/swift-book/LanguageGuide/MemorySafety.html
https://velog.io/@ryan-son/Swift-final-%ED%82%A4%EC%9B%8C%EB%93%9C-%EC%99%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B1%B8%EA%B9%8C

0개의 댓글