필자의 이해에 따르면 Java 인터프리터만으로는 바이트 코드를 한 줄씩 실행하기 시작하면 성능이 느려지므로 JIT는 코드 실행 속도를 높이기 위해 코드 최적화를위한 그림을 제공합니다.JIT 및 JAVA 인터프리터는 손으로 직접 작업을 수행합니까, 아니면 JIT가 먼저 완료합니까?
JIT 컴파일러는 코드를 최적화하고 java 인터프리터는 최적화 된 코드를 라인별로 변환합니다. JIT는 런타임에만 실행되므로 바이너리 출력을 얻지 못합니다. 인터프리터가 해석하면 바이너리 코드가 생성됩니다.
--- 이제 제 질문은 JIT와 JAVA 인터프리터가 함께 작동합니까? 또는 jit 컴파일러가 처음 작동하고 java 인터프리터가 작동하기 시작합니까?
확인해주세요.
Java 바이트 코드에는 행이 없으므로 인터프리터는 "행별로"실행하지 않고 명령별로 실행합니다. 더구나, "통역사 번역"에 대한 귀하의 생각은 이상합니다. 질문의 시작 부분에 당신이 옳았습니다. 통역사는 번역하지 않지만 * 실행합니다 *. 질문의 중간에 JIT 컴파일러의 작업을하는 통역사의 개념으로 갑자기 왜 바뀌 었는지는 분명하지 않습니다. – Holger
나는 초보자입니다. 대답 해 주셔서 대단히 감사합니다. 그것은 대단히 도움이 explainationI입니다. 나는 구글 검색을 통해 공부하고 내가 '통역사 번역'이라는 용어를 찾은 곳을 많이 알지 못한다. ... 실행하지만 번역을 고쳐 주셔서 감사합니다. – nazneen
기본적으로 둘 다 서로 다른 작업을 수행하며 동일한 원본 데이터에서 작업합니다. 인터프리터는 바이트 코드를 직접 실행하지만 JIT 컴파일러는이를 나중에 실행하기 위해 원시 코드로 변환합니다 (용어 JIT 컴파일러는 원래이 번역 작업 만 가리키고 있지만 오늘날은 최적화 및 번역이 일반적으로 분리 할 수없는 작업으로 간주됩니다). 서로 다른 일을하는 동안 어떤 종류의 상호 작용이 있습니다. 인터프리터가 JIT 컴파일러에 의해 생성 된 네이티브 코드로 전환하는 작업을 중단하고 네이티브 코드가 다시 전환되는 방식을 정의하는 프로토콜이 있어야합니다. – Holger