자바 JVM 시작 시 네이티브 코드 미리 준비하기
원제 JEP 544: Ahead-of-Time Code Compilation
100 포인트댓글 52
Key Point
자바 애플리케이션의 느린 시작과 워밍업 문제를 근본적으로 해결하는 동시에 동적 최적화의 유연성을 유지하는 핵심 기술로, 컨테이너와 마이크로서비스 환경에서 자바의 효율성을 크게 개선한다.
핵심 요약
- JEP 544는 AOT(Ahead-of-Time) 컴파일과 JIT(Just-In-Time) 컴파일을 결합해 자바 애플리케이션의 시작 속도와 워밍업 시간을 단축한다.
- 훈련 실행 중에 애플리케이션 코드를 네이티브 코드로 컴파일하고 AOT 캐시에 저장해 이후 프로덕션 실행에서 즉시 사용할 수 있게 한다.
- 워크로드가 변하면 JIT 컴파일러가 동적으로 새로운 네이티브 코드를 생성해 최고 성능을 유지한다.
- 애플리케이션 코드 변경 없이 작동하며 AArch64와 x64 아키텍처를 지원한다.
- HotSpot의 기존 AOT 캐시 생성 워크플로우를 확장하는 방식으로 Serial, Parallel, G1, ZGC 가비지 컬렉터를 모두 지원한다.