클래스 로딩, 바이트코드와 JIT의 선택 기준을 나란히 비교한다
비교 항목: 로딩은 클래스 바이트를 Class 객체로 만든다 / 초기화가 static 초기화 코드를 실행한다 / JIT는 관찰한 실행 경로를 최적화한다
| 확인 질문 | 판단 근거 | 코드에서 드러낼 것 |
|---|---|---|
| 로딩은 클래스 바이트를 Class 객체로 만든다 | 부트스트랩, 플랫폼, 애플리케이션 로더가 위임 관계로 클래스를 찾습니다. | 타입과 시작값 |
| 초기화가 static 초기화 코드를 실행한다 | 클래스의 첫 적극적 사용에서 정적 필드 초기화와 static 블록이 소스 순서로 실행됩니다. | 실패 또는 변경 경계 |
| JIT는 관찰한 실행 경로를 최적화한다 | 호출 빈도와 타입 프로필을 바탕으로 인라이닝과 특수화를 수행하고 가정이 깨지면 최적화를 되돌릴 수 있습니다. | 선택한 규칙의 결과 |
선택 기준 호출 빈도와 타입 프로필을 바탕으로 인라이닝과 특수화를 수행하고 가정이 깨지면 최적화를 되돌릴 수 있습니다.