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

French Marigold·2023년 6월 15일
0

면접 준비

목록 보기
4/9

1. class가 더 이상 상속을 하지 않는다면 class 앞에 final 키워드를 생성한다.

class 앞에 final 키워드를 생성하면 해당 class는 static dispatch로 동작하게 된다.
static dispatch란 간단하게 말해서 컴파일 타임에 컴파일러가 미리 메소드의 위치를 파악하여 런타임에 메소드를 바로 실행하는 방식이다.
dynamic dispatch런타임에 메소드의 위치를 파악하기 때문에 메소드의 위치를 일일이 찾아야 해서 시간이 더 오래 걸릴 수 밖에 없다.
따라서 static dispatch로 동작할 경우 훨씬 더 성능이 좋아진다.


2. 현재 파일 내에서만 접근하고 사용하는 것이라면 메소드와 프로퍼티에 private을 선언한다.

private으로 선언하면 현재 class 내에서만 동작할 수 있게 되고
컴파일러는 참조되는 구역 내에서 오버라이딩이 되는지 안 되는지를 판단하며
오버라이딩이 되는 곳이 없다면 final로 추론해서 static dispatch로 동작하게끔 만든다.


3. Reference Counting을 적게 만든다.

Reference Counting이 많다는 것은 인스턴스를 가리키는 객체의 개수가 많다는 뜻이다.
Reference Counting이 많으면 많을 수록 관리하기가 어렵기 때문에 성능이 안 좋아질 수가 있다.

profile
꽃말 == 반드시 오고야 말 행복

0개의 댓글