Java

[JVM 밑바닥까지 파헤치기] 8-2. 바이트코드 실행 엔진: 바이트코드 해석

noahkim_ 2024. 12. 24. 02:16

저우즈밍 님의 "JVM 밑바닥까지 파헤치기" 책을 정리한 포스팅 입니다

 

  • JVM 실행 엔진은 해석 실행과 컴파일 실행 두가지 방법으로 코드를 실행함 (선택 가능)

 

1. 해석 실행

인터프리터 해석 과정

  • 어휘 분석
  • 구문 분석
  • 추상 구문 트리 생성
  • 인터프리터
  • 문장 실행

 

컴파일 해석 과정

  • 어휘 분석
  • 구문 분석
  • 추상 구문 트리 생성
  • 중간 코드 생성
  • 최적화
  • 목적 코드 생성

 

2. 명령어 집합

스택 기반

iconst_1
iconst_1
iadd
istore_0
  • 바이트코드 명령어 스트림
  • 피연산자 스택을 이용해 동작
장점
  • 이식성: 하드웨어 의존 X
  • 간결: 바이트 명령어 하나당 한 동작 수행 (매개변수 X)

 

단점
  • 속도 느림: 메모리를 빈번하게 접근함

 

레지스터 기반

mov eax, 1
add eax, 1
  • 매개 변수 2개를 받는 명령어