컴파일

    JIT (Just-In-Time) 컴파일이란?

    JIT 컴파일이란? JIT Compile 은 Just-In-Time compile (알맞은 때에 컴파일) 의 약자이다. 소스 코드를 미리 기계 코드로 변환하는 기존 컴파일러 (AOT) 와 달리 런타임에 네이티브 코드를 생성한다. 처음엔 바이트코드 형식으로 해석되거나 실행되지만 자주 실행되는 부분은 속도를 위해 동적으로 기계 코드로 컴파일된다. 자주 실행되는 부분을 저장소에 저장해놓는 것을 Optimization 이라고 표현한다. Optimization 된 부분이 다시 자주 사용하지 않게 되면 Deoptimization 을 다시 거친다. JIT 은 어떻게 탄생되었는가? 개념 자체는 새로운 것이 아니며, 1980년대에 Smalltalk 이 시초가 됐다. Smalltalk 의 설계자들이 해석된 언어를 보다 효..

    AOT (Ahead-Of-Time) 컴파일이란?

    정의 AOT Compile 은 Ahead-Of-Time compile (사전 컴파일) 의 약자이다. JIT(Just-In-Time) 컴파일과 주로 비교된다. 프로그램 실행 중 즉시 변환을 수행하는 JIT(Just-In-Time) 컴파일과 대조적이다. 고수준의 소스 코드를 네이티브 머신 코드로 미리 변환하는 프로세스를 의미한다. AOT 컴파일의 장점 시작 속도 기계어로 사전 컴파일 되어 있어 시작이 빠르다. 런타임 환경에서 바이트 코드를 네이티브 코드로 변경할 필요가 없다. 예측 가능한 성능 AOT 컴파일된 앱은 보다 일관되고 예측 가능한 런타임 성능을 제공한다. JIT 컴파일은 런타임 중에 발생하는 컴파일 단계로 인해 가변 오버헤드가 발생할 수 있기 때문이다. 코드 난독화 바이트 코드보다 리버스 엔지니어..

반응형