동현 유
척척석사
동현 유
전체 방문자
오늘
어제
  • 분류 전체보기 (181)
    • BlockChain (48)
      • [paper] Consensus (13)
      • [paper] Execution (19)
      • [paper] Storage (5)
      • [paper] ZKP (1)
      • [paper] Oracle (1)
      • Blockchains (9)
    • Java (19)
      • Java의 정석 (13)
      • Java 파헤치기 (5)
    • Python (20)
      • Python 뜯어보기 (6)
      • 데이터 분석 기초 (5)
      • Python 기초 강의 (6)
      • Python 기초 강의 부록 (3)
    • Golang (0)
    • MySQL (3)
      • programmers (2)
      • 기본 문법 (0)
    • 웹 프로젝트 (IBAS) (36)
      • Django 레거시 (14)
      • SpringBoot api 개편 (14)
      • Infra (3)
      • 서버 장애 기록 (4)
      • 신입팀원 교육 자료 (1)
    • CS (30)
      • Operating System (22)
      • Computer Security (3)
      • Network (4)
      • DBMS (1)
    • 책 (10)
      • 도메인 주도 설계 철저 입문 (9)
      • Real MySQL 8.0 (1)
    • BOJ 문제 풀이 (3)
    • 이러쿵저러쿵 (10)
    • 회고 (1)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.
동현 유

척척석사

JIT compiler
Java/Java 파헤치기

JIT compiler

2022. 4. 10. 11:53

 

 

JVM 은 이식성을 위해 java specific instruction 을 생성하고 JVM 에서 line by line 으로 해석한다.

 

하지만 이런 방식은 c 같은 언어에 비해 매우 느릴 수 밖에 없다.

 

c 는 모든 코드를 기계어로 한번에 번역하여 실행하는 반면

 

java 는 동일한 함수가 여러번 호출되는 경우에, 해당 함수를 번역하고 실행하는 작업이 반복되기 때문이다.

 

그러한 코드를 hot code 라고 하고, 잘 호출되지 않는 코드를 cold 코드라고 한다.

 

그래서 JIT 컴파일러를 도입하여, hot code 는 machine specific 한 기계어로 번역을 하고 캐시하는 것이다.

 

이런 방식으로 인터프리터 방식의 단점을 보완한다.

 

'Java > Java 파헤치기' 카테고리의 다른 글

Java 한글 인코딩 안될때 jdk 버전 확인해야함.  (1) 2022.05.06
Spring MSA 를 간단하게 구현해보자 (+ 최신 release, 모니터링, heapdump)  (0) 2022.05.05
JavaThread 에 대해 깊게 이해해보자 (feat. Openjdk 커널 분석)  (2) 2022.04.30
[JVM] 레퍼런스  (0) 2022.04.24
    동현 유
    동현 유
    Fault Tolerant System Researcher for more Trustful World and Better Lives. (LinkedIn: https://www.linkedin.com/in/donghyeon-ryu-526b8a276/)

    티스토리툴바