📝느낀 점
JDK? JVM? 같은 용어들은 많이 들어 봤지만, JIT? 는 처음 들어 봤기에 이렇게 정리 해볼까 한다.
JVM을 공부하며, Execution Engine 에 알게 되었으며, 실행엔진은 무슨일을 할까? 내부에서는 어떤 일들이
일어날까 궁금하였기에 정리해볼까 한다. 일단 내용이 짧다. 이부분에 대해서는 점차 해당 글들에 대해 내용을
더 붙여가며 좋은 글을 작성할 수 있도록 하겠다. 결국 JIT는 컴파일러에 의해 바이트 코드로 되었던 것을 컴퓨터가
알아 들을수 있는 언어인 기계어(010101)로 변환해주는 작업을 해준다고 생각하면 될것 같다.
javac 명령을 사용해서 컴파일 한 바이트 코드를 컴퓨터가 알아먹을 수 있도록 하려면 다시 변환 작업이 필요하다.
이 변환 작업을 JIT 컴파일러가 한다고 보면 된다. 프로그램 실행을 보다 빠르게 하기 위해서이다.
명칭이 컴파일러이지만, 실행시 적용되는 기술이다.
JIT = "동적 변환"
컴퓨터 프로그램을 실행하는 두 가지 방식
- 인터프리트 방식
- 인터프리트 방식은 프로그램을 실행할 때마다 컴퓨터가 알아 들을 수따라서,
간편하지만 성능이 매우 느릴 수 밖에 없다. - 있는 언어로 변환하는 작업을 수행한다. 따라서, 간편하지만 성능이 매우 느릴 수 밖에 없다.
- 인터프리트 방식은 프로그램을 실행할 때마다 컴퓨터가 알아 들을 수따라서,
- 정적 컴파일 방식
- 실행하기 전에 컴퓨터가 알아 들을 수 있는 언어로 변환하는 작업을 미리 실행한다.
- 따라서, 변환 작업은 딱 한 번만 수행한다.
"JIT는" -> 이 두가지 방식을 혼합한 것이라고 보면 된다.
'Java' 카테고리의 다른 글
컬렉션 프레임워크 설명 (0) | 2023.11.07 |
---|---|
JVM 동작원리와 내부구조 (0) | 2023.11.07 |
배열의 선언과 메모리 할당 (0) | 2023.11.07 |
static primitive, static reference 저장 / static 메서드와 일반 메서드의 차이점 (0) | 2023.11.07 |
exception VS error 차이가 무엇인가요? (0) | 2023.11.07 |