Java 가속 기술 share
JIT Compiler
- Just-In-Time Compilation Technology
- Java 의 바이트코드를 프로세서에게 직접 전달될 수 있는 명령어로 바꾸어주는 프로그램 - Java 소스는 Java 컴파일러에 의해 바이트코드 변환되며, 가상머신 (VM) 은 한번에 하나의 바이트코드 명령어만을 처리 가능
- 특정 시스템 플랫폼에 있는 JIT 컴파일러 (second compiler) 를 사용하여 바이트코드를 특정 시스템의 코드. 마치 그 프로그램이 처음부터 그 플랫폼에서 컴파일된 것처럼 컴파일하여 속도 향상을 가져옴
- JIT 컴파일러는 VM 과 함께 제공되며 사용 여부는 사용자 선택
- .Net Framework 도 JIT Compilation 기술을 사용함.
AOT or AOTC
- Ahead of Time Compile
- Java 의 바이트코드를 C 로 변환하고 이를 다시 C Compiler 를 이용해서 해당 아키텍쳐에 맞는 Native Code 로 만들어 실행하는 기술
Java 가속 기술 비교
기술 | 속도 향상 | 특징 |
---|---|---|
JIT | 10~15x | Application 크기 커짐 |
AOT(C) | 6~10x | 프로파일링 및 컴파일 시간이 있어서 초기 실행시간이 느려짐 |
Jazelle | 6~10x |
주)
Mobile 에서는 JIT 와 Jazelle 사용이 일반적임.
주)
Application 크기가 커지는 것을 제외하면, AOT 방식이 최대 성능을 보일 수 있음.