자바
자바 - JVM
개발자 포비
2024. 11. 21. 22:11
JVM 구성요소
1) Class Loader
- Java 애플리케이션의 동적 클래스 로딩 시스템
- 주요 기능: 컴파일, 링크, 런타임 클래스 로딩
- 프로세스:
- 소스 코드 컴파일 → Java Byte Code 변환
- 런타임 시 필요한 클래스들을 동적으로 메모리에 로드
- 클래스 파일의 링킹 및 초기화 수행
2) Runtime data area
- Method Area: 클래스 구조, 메타데이터, 상수 풀 저장
- Heap Area:
- 객체와 배열 저장 공간
- Garbage Collection의 주요 대상 영역
- Stack & PC Register:
- 스레드별 고유 메모리 영역
- 지역 변수, 메서드 호출, 실행 상태 관리
- Native Method Stack:
- 네이티브(JNI) 메서드 실행 전용 영역
3) Execution engine
- Interpreter:
- Byte Code를 한 줄씩 실시간 번역
- 초기 실행 성능 저하의 주요 원인
- JIT(Just-In-Time) Compiler:
- 반복 실행되는 코드 블록을 네이티브 코드로 컴파일
- 성능 최적화를 담당
- Garbage Collector:
- 자동 메모리 관리
- 사용하지 않는 객체 식별 및 제거
- 메모리 누수 방지
https://www.youtube.com/watch?v=kAyQexUHiNc