본문 바로가기
개발/Android

Android Runtime – 컴파일러 차이점 (JIT Vs. AOT)

by Dev Aaron 2020. 11. 8.
반응형

Android 롤리팝부터 Dalvik VM이 ART로 대체되었다. 가장 큰 주요 차이점은 컴파일러로 보인다.

Dalvik VM: JIT (Just -in-Time)
ART: AOT (Ahead-of-Time

JIT (Just-in-Time)

바이트 코드를 실제 기계어로 컴파일하는 것을 실행 시점에 수행하게 된다. 따라서 실행 속도가 상대적으로 느리지만, 앱 설치 속도, 설치 용량 등이 AOT에 비해 빠르고 적게 차지한다.

AOT (Ahead-of-Time)

이름에서 알 수 있듯이 미리 컴파일을 다 해놓는다. 따라서 실제 실행 시 별도 컴파일 과정이 없으므로 속도가 상대적으로 빠르다. 반면 미리 컴파일을 해놓기 때문에 설치 속도나 설치 용량이 좀더 큰편이다.

롤리팝부터 ART로 대체되긴 했지만, 누가부터 JIT도 같이 탑재하여 JIT과 AOT의 두 장점을 계승한 것으로 보인다. 즉 설치 시에는 JIT처럼 설치하여 빠른 설치 속도, 적은 용량을 차지하며, 앱이 동작하지 않거나 충전 중일 때 미리 AOT 방식으로 컴파일을 해놓아 빠른 실행 속도를 제공해준다.

반응형