[Java/Kotlin] JIT compiler

Jay·2021년 1월 18일
0

Java&Kotlin

목록 보기
9/30
post-thumbnail

JIT Compiler ⁉️

  • java file을 compile하게 되면 .class 확장자를 가진 클래스 파일이 생성된다.
  • 이 .class파일은 자바 바이트 코드로 구성되어 있다.
  • JVM이란 가상 머신을 사용하는 자바 언어에서도 컴파일 된 바이트 코드를 효율적으로 빠르게 실행 시키는게 중요하다.
  • 자바 바이트 코드는 매우 저수준의 인터프리터 언어이기에 실행하는데 큰 노력이 필요치 않지만, 직접 돌아가는 C/C++에 비해선 속도가 느리다.

이러한 속도의 차이
거기서 나온 게 JIT Compiler이다.

  • 프로그램 실행 중 (런타임시점)에 가상 기계 상에서만 돌아가는 자바 바이트 코드를 해당 플랫폼에 맞는 기계어로 컴파일 해주는 특수한 컴파일러이다.
  • JIT 컴파일러는 바이트 코드를 컴파일 하는 과정에서 몇가지 간단한 최적화 과정을 거친다.
    (스택 연산을 레지스터 연산으로 변환 / 레지스터 할당을 통한 메모리 접근 횟수 감소시키기)


Execution

JIT Compiler는 JRE의 일부로서, 자바 응용 프로그램의 성능을 실행 시간중에 향상시켜주는 도구이다.

  • 플랫폼 독립적이다.
  • 컴파일 된 클래스 파일들은 가상 머신에 종속적이다.
  • 명령을 하나씩 읽고 해석하면서 프로그램을 실행하기에 추가 로딩이 필요한 경우, 응용 프로그램의 속도가 그만큼 더 느려진다. 이러한 느린 실행 속도 향상을 위해 JIT 컴파일러가 존재한다.
  • 실행에 비교적 많은 시간이 걸리는 바이트 코드를 프로그램 실행 중에 컴파일 함으로써 실행 속도를 향상시킨다.

Benefits of usage

  • JIT 컴파일 방식은 실제로 처리중인 CPU, 메모리 정보를 알 수 있기 때문에 그에 따라 코드를 생성할 수 있어 사전 컴파일보다 뛰어난 코드를 생성할 가능성이 있다.
profile
developer

0개의 댓글