[ios] final

Cobugi·2022년 7월 29일
0

ios

목록 보기
7/8

final

final

  • 더 이상 상속이 필요없을 때, final 키워드를 사용하면된다.
  • final 키워드가 붙은 상태에서 오버라이드를 할 경우 컴파일 에러가 발생한다.

final을 통한 런타임 성능향상

  • final 키워드를 붙이면 Dynamic Dispatch이 아닌 Static Dispatch를 사용해 컴파일 타임에 호출할 메서드임을 정해주므로 런타임 성능이 향상된다.

Dynamic Dispatch

  • 런타임에, 호출될 함수를 결정한다.
  • 하위 클래스가 메서드를 호출할 때, vTable을 참조하여 실제 호출할 함수를 결정한다.
  • 이 과정이 런타임에 일어나기 때문에 성능상 손해를 가질 수 있다.

Static Dispatch

  • 컴파일 타임에, 호출될 함수를 결정하고 런타임 때 그대로 실행한다.
  • 컴파일 타임에 결정되기 때문에 성능상 이점을 가질 수 있다.
profile
iOS Developer 🐢

0개의 댓글