jvm

자바

[JVM] 실행 엔진 알아보기 - (3) / 인터프리터, JIT Compiler, GC

실행 엔진은 Runtime Data Area 에 적재된 바이트코드들을 실행하고 사용하지 않는 데이터들을 제거하는 역할을 하며 세 가지 장치로 구분된다. - 인터프리터(Interpreter) - JIT Compiler - Garbage Collector 인터프리터(Interpreter) JVM 인터프리터는 런타임 중 바이트코드를 한 라인씩 읽고 Native Code 로 변환하는 작업을 수행한다. 인터프리터는 한 줄씩 기계어로 번역하는 만큼 번역속도는 빠르지만 전체 실행속도는 느리다. 또한 중복되는 바이트코드들에 대해서도 매번 컴파일을 하기 때문에 비효율적이라는 단점이 있다. 이러한 인터프리터 방식의 단점을 보완하기 위해 자바는 1.2 버전부터 뒤이어 설명할 JIT Compiler 를 출시하고 지속적으로 업..

자바

[JVM] 런타임 영역 알아보기 -(2)

Runtime Data Area(런타임 영역) 은 JVM 이 런타임 환경에서 자바 프로그램을 수행할 때 OS 로부터 할당받는 메모리 영역이다. 이 메모리 영역은 논리적으로 5가지 영역으로 구분한다. Method area Heap PC Register Native Method Stack JVM Stack 색깔을 구분한 이유는 해당 영역을 thread 간 공유하는 지의 여부를 나타내기 위함이다. Method Area 와 Heap Area 는 모든 thread 가 공유하는 자원이고 PC Register, Native Method Stack, JVM Stack 은 Thread 별로 생성이 되어 운영된다. 1. Method Area Method Area 는 JVM 벤더마다 다르게 구현되어 있다. 다만, 거의 모든..

자바

[JVM] Class Loader 알아보기 - (1)

JVM 은 사용자 컴퓨터 운영체제에 맞는 JRE 에 포함되어 있는 소프트웨어로, 바이트 코드로 변환된 자바 코드를 실행시켜주는 역할을 한다. 자바 프로그램을 실행함에 있어 .class 파일에 대한 유효성 검사와 메모리 관리, GC 등의 작업을 수행하기 때문에 매우 중요한 소프트웨어라고 할 수 있다. JVM 내부구조 JVM은 크게 다음과 같이 이루어져 있다. 클래스 로더(class loader) 실행 엔진(execution engine) 인터프리터(interpreter) JIT Compiler 가비지 콜렉터(garbage collector) 런타임 영역(runtime data area) 이번 글에서는 클래스 로더가 무엇이고, 어떻게 동작하는 지 알아보자. Class Loader 클래스 로더는 위 그림에서 ..

누누01
'jvm' 태그의 글 목록