JIT 컴파일(Just - in -time) 또는 동적 번역(dynamic translation)은 프로그램을 실제 실행하는 시점에서 기계어로 번역하는 컴파일 기법이다. 이 기법은 프로그램의 실행속도를 빠르게 하기 위해 사용된다. 전통적인 입장에서 컴퓨터 프로그램을 만드는 방법은 두 가지가 있는데, 인터프리트 방식과 정적 컴파일 방식으로 나눌 수 있다. 이 중 인터프리트 방식은 실행 중 프로그래밍 언어를 읽어가면서 해당 기능에 대응하는 기계어 코드를 실행하며, 반면 정적 컴파일은 실행하기 전에 프로그램 코드를 기계어로 번역한다. JIT컴파일러는 두 가지의 방식을 혼합한 방식으로 생각할 수 있는데, 실행 시점에서 인터프리트 방식으로 기계어 코드를 생성하면서 그 코드를 캐싱하여, 같은 함수가 여러 번 불릴 때 매번 기계어 코드를 생성하는 것을 방지한다. 최근의 자바 가상 머신과 .NET, V8(node.js)에서는 JIT 컴파일을 지원한다. 즉, 자바 컴파일러가 자바 프로그램 코드를 바이트코드로 변환한 다음, 실제 바이트코드를 실행하는 시점에서 자바 가상 머신이 바이트코드를 JIT컴파일을 통해 기계어로 변환한다.
https://ko.wikipedia.org/wiki/JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC
'필사적 필사' 카테고리의 다른 글
자바스크립트 비동기 처리 과정과 Rxjs Scheduler (0) | 2020.03.17 |
---|---|
프로토타입 기반 프로그래밍 (0) | 2020.01.21 |
NMS 알고리즘 (0) | 2020.01.09 |
.net framework란 무엇일까? (0) | 2019.12.31 |
DEBUG와 RELEASE 컴파일의 차이 (0) | 2019.12.11 |