JIT 컴파일러(Just-in-Time)

ISAAC·2020년 12월 26일
0
post-thumbnail

※ 이 시리즈의 내용은 매우 기본적이거나 쉬울 수도 있기 때문에 놀라실 수도 있습니다. 개발자들의 주의를 요합니다.


JIT?

JIT는 JVM내부에서 바이트코드를 기계어로 변환하는 방식으로서 Just-In-Time의 약자다.

컴파일 방식

컴파일 방식은 인터프리트 방식과 정적 컴파일 방식이 있다.

  • 인터프리트 방식 : 프로그램 실행시마다 기계어로 변환하는 작업을 수행하는 방식
  • 정적 컴파일 방식 : 실행 전 기계어로 미리 변환 후 실행하는 방식이며, 딱 한번만 수행된다.

JIT는 이 두가지를 혼합한 것이다. 인터프리터에 의해 변환이 지속적으로 수행되지만, 필요한 코드 정보는 캐시에 담아두었다가(메모리에 올려둠) 재사용하는 방식이다.

장점

반복적으로 수행되는 코드에 대해 매우 빠른 성능을 보인다.

단점

처음 시작 시에 변환 단계를 거치기 때문에 성능이 느리다. (하지만 최근에는 CPU성능과 JDK성능이 개선되어 많이 개선됐다고 한다. )

위의 내용에서 JVM -> 기계코드로 변환되는 부분에서 JIT가 수행된다.

출처 : 『JAVA의 신』 - 이상민 저


profile
어려운 것은 쉽게, 쉬운 것은 기억에 남게.

0개의 댓글