inflearn logo
강의

講義

知識共有

チャネルトークの面接官が直接教えるCS面接対策 - Java編

(深掘り質問) instanceof キーワードを使用すると、どのような問題がありますか? ⭐️

성능 오버헤드

解決済みの質問

22

Cola

投稿した質問数 38

1

런타임에 객체의 타입을 확인하는 과정에서의

성능 오버헤드는 어느정도?? 라고 생각해야되나요

신경을 써야되는 수준인지 궁금합니다.

java 객체지향 computer-science

回答 2

0

jayon0927

안녕하세요, Cola님!

사실 일반적인 시스템에서 instanceof로 인해 성능 상의 큰 문제가 되는 건 많지는 않습니다.

정확히는 상속의 깊이가 깊어지고, 해당 상속으로 이어지는 클래스가 많을 경우 이들을 순회하면서 타입을 찾는데요! 이러한 수십 ~ 수백 개 이상의 클래스가 상속 구조로 연결된 형태가 많은 거대한 애플리케이션이라면 문제가 생길 여지가 있습니다.

 

물론 이보다는 다형성을 깨뜨리는 점이 더 메인 문제점이지만, 성능 오버헤드도 알아두면 좋겠어서 자료로 포함하게 되었습니다.

1

Cola

감사합니다!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. Cola님!

Java에서 객체의 타입을 런타임에 확인하는 것(예: instanceof, 리플렉션 사용 등)은 성능에 일정한 오버헤드를 유발합니다. 그러나 일상적인 사용 범위에서는 크게 걱정할 필요는 없습니다. 대부분의 JIT 컴파일러는 이런 부하를 최소화하도록 최적화가 되어 있으므로, 일반적인 애플리케이션에서는 심각한 성능 저하를 느끼기 어려운 것이 사실입니다.

주목해야 할 점은, 이런 런타임 타입 체크가 매우 빈번하게 일어나는 경우입니다. 대규모 데이터 처리를 포함하거나, 자주 호출되는 핫스팟 코드에서 사용된다면 잠재적으로 성능 병목이 될 수 있습니다. 이 경우에는 구조적 개선이나 캐싱 메커니즘 도입을 검토해야 합니다.

관련 주제로 성능 최적화를 다룬 자료로는 GC 알고리즘 질문에 대한 답변이 있습니다. 이는 객체 관리와 관련된 주제여서, 런타임 성능 오버헤드라는 맥락에서 함께 고려하시면 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

섹션3. 11 회원객체 다이어그램

0

6

1

팬텀리드 해결 예시 질문

0

9

0

OCP, DIP과 @Qualifier 어노테이션에 대해서 질문합니다.

0

10

1

노션 접근권

0

11

1

@Version 어노테이션이 붙은 필드는 낙관적 락이든 비관적 락이든 업데이트가 됩니다.

0

12

1

형 이번에 낸 책이랑 강의 내용에 차이가 있어?

1

25

1

형 나 몰래 책내면 모를 줄 알고?

1

23

0

OrderServiceTest 상문주문 테스트 시 update 쿼리 문의

0

17

1

멀티스레드

1

18

2

N+1 관련해서 질문있습니다.

0

28

3

다음 강의는 언제 올려주시는지요?

0

27

2

하단 파일이 열리지 않습니다

0

27

1

ssh-keygen -t rsa -P "" 등 ssh 암호화? 는 하둡에서 필수인가요?

0

26

2

강의 중복 확인 요청

0

22

1

volatile에 대해 질문 있습니다.

2

34

2

Mark and Sweep

1

30

1

20년 4,5회 13번

0

25

2

GC 알고리즘

1

29

2

용어 질문

1

23

1

호출횟수 질문입니다.

1

35

2

실행과정 질문입니다.

2

36

1

코딩 테스트 All-in-One(Java)' 강의 노션 교재 권한문의

0

26

1

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

27

2

중복내용 제보?!

1

45

2