inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

채널톡 면접관이 직접 알려주는 CS 면접 대비 - Java 편

(꼬리 질문) JIT 컴파일러가 "자주 사용되는 코드"를 어떻게 판단하나요? ⭐️⭐️

호출횟수 질문입니다.

해결된 질문

36

Cola

작성한 질문수 39

1

메서드 호출 횟수가 약2,000회 / 약15,000회로 적어주셨는데 이 횟수는 버전마다 크게 차이가 없는걸까요? 이렇게 약 2천 약 1만5천 이라고 확정지어 알고 있어도 되는건지 궁금합니다.

java 객체지향 computer-science

답변 2

1

JSCODE 제이온

안녕하세요, Cola님!

 

자료의 2,000 / 15,000은 HotSpot JVM의 Tiered Compilation 기본값으로, -XX:Tier3CompileThreshold, -XX:Tier4CompileThreshold 옵션에 해당합니다.

 

이 값은 Tiered Compilation이 기본 활성화된 Java 8 이후 최신 OpenJDK HotSpot까지 동일하게 유지되고 있습니다. OpenJDK 소스 트리의 테스트 코드(CheckCompileThresholdScaling.java)에서도 같은 값으로 검증되고 있습니다. 그래서 OpenJDK HotSpot 기준으로는 버전 차이를 신경 쓰지 않으셔도 됩니다.

 

직접 확인하시려면 다음 명령어를 수행해 보시면 됩니다.

java -XX:+PrintFlagsFinal -version | grep CompileThreshold

 

다른 JVM 벤더(OpenJ9, GraalVM 등)는 정책이 달라 수치가 다를 수 있지만, OpenJDK HotSpot 기준으로 약 2,000 / 약 15,000으로 외워두시면 충분합니다.

 

참고: https://devblogs.microsoft.com/java/how-tiered-compilation-works-in-openjdk/

1

Cola

답변 감사합니다!

0

인프런 AI 인턴

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

Java에서 메서드 호출 횟수 같은 성능 관련 수치는 버전에 따라, 그리고 실행 환경에 따라 조금씩 달라질 수 있습니다. 특히 JVM 버전이나 최적화 옵션, 런타임 환경 등의 차이에 의해 그 횟수가 달라질 수 있습니다.

하지만 일반적으로 언급된 호출 횟수(예: 약 2,000회, 약 15,000회)는 보편적으로 나타날 수 있는 값으로, 특정 버전이나 설정에서는 크게 변동이 없을 수 있습니다. 이 숫자들은 대개 일반적인 상황을 염두에 두고 말하는 것이니, 꼭 정확한 값이라기보다는 대략의 가이드로 이해하시면 됩니다. 그러므로 절대값보다는 패턴이나 경향성을 파악하는 데 중점을 두시는 것이 좋습니다.

관련 질문 보기에서 JSCODE 제이온님이 Java 프로그램 실행 과정에 대해 설명한 것이 예시로 도움이 될 수 있습니다. 이런 정보를 기존 지식과 함께 고려하면 좀 더 포괄적인 이해가 가능하십니다.

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

MySql

0

7

1

강사님.. 하단 URL에 있었던 코드들 다운 받거나 공유 부탁 드립니다..

0

11

2

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

0

14

1

팬텀리드 해결 예시 질문

0

13

0

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

0

19

1

노션 접근권

0

18

1

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

0

19

1

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

1

35

1

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

1

29

1

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

0

21

1

멀티스레드

1

22

2

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

0

33

3

성능 오버헤드

1

28

2

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

0

36

2

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

0

35

1

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

0

27

2

강의 중복 확인 요청

0

26

1

volatile에 대해 질문 있습니다.

2

37

2

Mark and Sweep

1

35

1

20년 4,5회 13번

0

27

2

GC 알고리즘

1

31

2

용어 질문

1

25

1

실행과정 질문입니다.

2

37

1

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

0

28

1