본문 바로가기

GC2

[Java] 가비지 컬렉션(Garbage Collection) Garbage Collection GC는 자바의 메모리 관리를 자동화하는 메커니즘으로 명시적으로 메모리를 할당하거나 해제하지 않아도 동적으로 사용하지 않는 객체들을 인식하고 제거하는 프로세스입니다. GC의 자동 메모리 관리로 인해 프로그래머들은 메모리 누수 문제, 메모리 관리 등과 같은 문제에서 벗어나 오로지 개발에만 집중 할 수 있게 되었습니다. 하지만 GC는 일시적으로 메모리에 대한 가비지를 수집할 때까지 GC 스레드를 제외한 모든 스레드를 중지하는 Stop the world 이벤트를 진행하는데 이는 오버헤드가 발생돼 프로그램의 응답성이 떨어지는 문제점이 있습니다. GC가 오히려 자주 실행되면 프로그램의 실행 시간이 증가되어 성능상의 이슈가 발생합니다. 따라서 실시간으로 제어하는 것이 중요한 프로그램.. 2023. 8. 21.
[Java] 실행 엔진(Execution Engine) Execution Engine Execution Engine은 바이트 코드를 읽고 실제로 실행하는 역활을 담당합니다. Runtime Data Areas에 있는 자바 바이트 코드를 읽고 운영체제에 맞게 기계어로 번경하여 해당하는 명령어(instruction) 단위로 실행합니다. Execution Engine은 위의 수행 과정에서 인터프리터와 JIT 컴파일러 두 가지 방식을 혼합하여 바이트 코드를 실행합니다. Interpreter 자바는 인터프리트, 컴파일 두 방식을 혼합하여 사용하는 하이브리드 모델입니다. 컴파일을 통해서 자바 바이트 코드를 생성하고 코드의 명령어를 인터프리터를 사용해 하나씩 읽어서 해석하고 바로 실행합니다. 이는 빠른 시작 속도와 동적인 실행 환경을 제공하지만 반복적으로 실행되는 코드의 .. 2023. 8. 5.