Class의 성능을 향상 시킬수 있는 방법

Jee.e (황지희)·2022년 2월 28일
0

1. 클래스를 선언할 때, final 키워드를 붙여주면 성능이 향상된다.

오버라이딩한 메서드는 실행 시점에 어떤 메서드를 실행할지 결정하는 반면, final 키워드가 적용된 메서드는 컴파일 시점에 어떤 메서드를 실행할지 결정하기 때문에 성능 ⬆️

Final

final이 붙은 클래스는 상속이 불가하고, final이 붙은 메서드나 프로퍼티는 하위 클래스에 오버라이딩을 할 수 없음 ➡️ 재정의가 필요 없다고 판단되는 경우 사용한다.


2. Reference Counting 오버헤드

Heap에 할당되는 인스턴스들은 Reference counting 관리가 필요하다.
Swift는 Heap에 할당된 메모리를 언제 해제해야 할지를 판단하기 위해 reference counting을 사용한다.
여러 스레드에서 동시에 reference count를 증가/감소 시킬 수 있기 때문에 counting을 더 세세하게 해야함으로, reference counting이 빈번하게 발생해 실질적으로 많은 비용을 요구한다.
➡️ 구조체로 선언된 타입을 사용해 성능을 향상시킬 수 있다.


3. Class가 Struct보다 비용이 높으니, Class의 특성(추상화 등)이 필요 없다면 Struct을 쓰자


참고문서

  1. https://babbab2.tistory.com/145
  2. https://onemoonstudio.tistory.com/7
profile
교훈없는 경험은 없다고 생각하는 2년차 iOS 개발자입니다.

0개의 댓글