바이트 코드를 읽는 방식

YH·2023년 3월 27일
0

바이트 코드란,

  • .java 코드를 자바 컴파일러(Javac)가 컴파일 하게되면 .Class 형태의 파일을 생성하는데, 이 .Class 파일로 된 코드를 바이트 코드라고 함
  • 쉽게 말하면, JVM이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미 함
  • 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 바이트 코드라 불림

자바 프로그램의 실행 과정

  • .java 코드를 컴파일하여 .class 바이트 코드를 생성하면, 클래스 로더(Class Loader)를 통해 JVM Runtime Data Area로 배치되고, 배치된 바이트 코드를 실행할 JVM에 전달하면 프로그램을 실행할 때 JVM이 기계어로 해석하게 된다.

바이트 코드를 읽는 방식

  • JVM에서는 바이트 코드를 명령어 단위로 읽어서 해석하는데, 이 때 사용되는 방식이 Interpreter 방식JIT 컴파일 방식

Interpreter 방식

  • 바이트 코드를 한 줄씩 해석, 실행하는 방식
  • 초기 방식으로 속도가 느림

JIT 컴파일 방식

  • 속도가 느린 Interpreter 방식을 보완하기 위해 나온 방식
  • 초기 실행시점에 자주 사용될만한 바이트 코드를 미리 기계어로 해석하여 저장(캐싱) 해뒀다가 재사용 하는 방식

-> 바이트 코드를 기계어로 변환하는 데에도 비용이 소모되므로, JVM에서는 Interpreter 방식을 사용하다가 일정 기준이 넘어가면 JIT 컴파일 방식을 사용한다.
-> 결국, JVM에서 2가지 방식 모두를 혼합하여 사용





참고 Reference

profile
하루하루 꾸준히 포기하지 말고

0개의 댓글