Development Knowledge/JAVA

JIT(Just-in-Time Compilation)

jujube bat 2020. 5. 12. 10:50

✅ 인터프리터

프로그램을 실행할때 소스 코드를 한 줄씩 기계어로 번역해서 실행하는 프로그램 또는 환경을 말한다. 

✅ 정적 컴파일

프로그램을 실행하기 전에 모든 소스 코드를 기계어로 번역한다.

번역 과정이 번거롭고 오래 걸리지만, 한 번 컴파일하면 그 후에는 다시 번역하지 않아도 되므로 실행 속도가 빠르다. 

✅ JIT 컴파일

 프로그램을 실행하는 시점에 기계어로 번역하는 컴파일 기법이다.

 인터프리터 방식과 정적 컴파일 방식을 혼합한 방식이다. 

프로그램을 실행을 하면서 인터프리터 방식으로 기계어 코드를 생성한다. 그 과정에서 기계어를 캐싱한다.

이후 캐싱된(이전에 이미 번역한적이 있던) 기계어를 사용한다. 이는 인터프리터의 느린 실행속도를 개선할 수 있다. 

◾ JIT '컴파일러'보다는 JIT '인터프리터'가 더 정확한 표현이다.