Java/Java 파헤치기

JIT compiler

동현 유 2022. 4. 10. 11:53

 

 

JVM 은 이식성을 위해 java specific instruction 을 생성하고 JVM 에서 line by line 으로 해석한다.

 

하지만 이런 방식은 c 같은 언어에 비해 매우 느릴 수 밖에 없다.

 

c 는 모든 코드를 기계어로 한번에 번역하여 실행하는 반면

 

java 는 동일한 함수가 여러번 호출되는 경우에, 해당 함수를 번역하고 실행하는 작업이 반복되기 때문이다.

 

그러한 코드를 hot code 라고 하고, 잘 호출되지 않는 코드를 cold 코드라고 한다.

 

그래서 JIT 컴파일러를 도입하여, hot code 는 machine specific 한 기계어로 번역을 하고 캐시하는 것이다.

 

이런 방식으로 인터프리터 방식의 단점을 보완한다.