[iOS][SeSAC] WMO 성능 개선

·2024년 2월 7일

WMO(Whole Module Optimization)

전체 모듈 최적화
WMO는 컴파일 시에 어떻게 성능을 향상시켜 볼 수 있을까에 대한 지점

1. class를 static dispatch로 동작하게끔 바꾸기

Method Dispath

dynamic dispatch: 런타임에 함수 결정(ex. class)
static duspatch: 컴파일타임에 함수 결정(ex. enum)

class는 오버라이딩, 재정의 할 수 있기 때문에 어디까지 재정의 하고 있는지 컴파일 시점에서 모르고 런타임 때 알게 된다.
즉, dynamic dispatch 성향을 가지고 있고 이걸 해결하기 위해 static dispatch 성향을 가지도록 만들면서 오버헤드를 줄여나갈 수 있다.

static dispatch으로 만드는 방법은 재정의가 안 되는 것들은 재정의가 안 된다고 미리 선언해주면 된다(상속이 필요 없는 class는 final 키워드 사용)

2. 접근 제어자 사용

0개의 댓글