ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] Java의 JVM이란?
    CS 2023. 12. 25. 23:04

    프로그래밍 언어가 실행되는 방법에 따라 컴파일러(Compiler) 언어와 인터프리터(Interpreter)언어로 나누어집니다.

     

    컴파일러는 컴파일 + 실행, 인터프리터는 실행이라는 차이점으로 상황에 따라 장단점을 가지고 있습니다.

     

    자바는 컴파일러 언어로 실행을 위해 단 한 번의 컴파일과 실행 과정을 거치게 됩니다.

     

     

    자바 코드를 빌드하면 .class 파일이 만들어집니다. javac 명령어와 같습니다.

     

    이후 class 파일을 실행시키면 CPU가 읽을 수 있는 기계어로 번역 되는 과정이 필요합니다.

     

    이 역할을 수행 하는 것인 JVM입니다.

     

     

    프로젝트의 규모가 커질 때 컴파일 되는 시간이 오래 걸릴 수 있다는 단점을 가지고 있습니다.

     

    이러한 단점을 해결 하기 위해 JVM에는 JIT(Just-In-Time) 컴파일러가 있습니다.

     

    JIT 컴파일러는 JVM에서 동작하며 프로그램을 실행하는 시점에 기계어로 번역하는 컴파일러입니다.

     

    JIT 컴파일러의 기능

    • 머신코드 캐시 : 반복되는 기계어 번역을 줄입니다.
    • 머신코드 최적화 : 런타임 환경에 맞게 최적화합니다.

    JIT 컴파일러는 자바 성능 향상에 도움을 주지만 애플리케이션 시작단계에는 Cache가 없는 단점이 있습니다.

     

    애플리케이션 시작 후 의도적인 실행으로 기계어가 캐시에 값을 미리 저장하게 하는 JVM Warm up 같은 작업도 있습니다.

    'CS' 카테고리의 다른 글

    [CS] 자바 Gabage Collection  (0) 2024.01.18
    [CS] 자바 메모리 영역  (0) 2024.01.16
    [자료구조] Trie  (0) 2023.08.01
    [자료구조] 세그먼트 트리  (0) 2023.07.27
    [자료구조] 이진 탐색 트리  (0) 2023.07.22
Designed by Tistory.