목록전체 글 (796)
코드 그라데이션
먼저, GC의 종류 Serial GC 단일 스레드 환경 및 소규모 응용 프로그램을 위한 간단한 GC Minor GC에서 Copy & Scavenge 알고리즘 적용 Full GC에서 Mark & Compact 알고리즘 적용 Parallel GC JVM 기본 옵션(Java 8 기본) 멀티스레드 기반개수 지정 가능 으로 작동해 효율을 높임 Low-pause(응용 프로그램 중단 최소화) Throughput(Mark & Compact 알고리즘을 기반으로 신속성 최대화) Concurrent GC Low-pause 와 유사하며 응용 프로그램 실해 중 GC 실시 동작 중지 최소화 Incremental GC (Train GC) Concurrent GC와 유사하나 Minor GC 발생 시 Full GC GC를 일부 병행 ..
Heap 영역의 관리 관리는 크게 세 가지 구조적인 부분으로 나눌 수 있다. 새로운 객체 할당 객체가 생성될 때, 힙 영역에 메모리 공간을 할당한다. 객체의 크기에 따라 동적으로 메모리를 할당하며, 할당된 메모리는 객체의 데이터와 함께 초기화된다. 객체 사용 및 참조 생성된 객체는 프로그램의 다른 부분에서 참조됩니다. 이때, 힙 영역 내부에는 객체의 주소를 참조하는 레퍼런스 변수들이 존재합니다. 여러 레퍼런스 변수가 동일한 객체를 참조할 수 있으며, 객체의 필드나 배열 요소 등을 통해 객체 내부의 데이터에 접근할 수 있습니다. 가비지 컬렉션 (Garbage Collection) 힙 영역에서는 더 이상 참조되지 않는 객체들이 가비지 컬렉션에 의해 정리된다. 가비지 컬렉터는 주기적으로 실행되거나 힙 영역이 ..
이 부분이 잘 이해가 안 되어서 역할 구분에 대해 조금 더 찾아보았다. JVM Runtime data area 메소드 영역 (Method Area) 메소드 영역은 JVM의 런타임 데이터 영역 중 하나로, 클래스에 대한 정보를 저장한다. 클래스 로더에 의해 로드된 클래스의 바이트 코드, 정적 변수(static variable), 상수, 메소드 코드 등이 여기에 저장된다. 모든 스레드가 공유하는 영역으로, JVM이 시작될 때 생성되며 프로그램이 종료될 때까지 유지된다. Java 7 이전에는 Permanent Generation으로 알려져 있었지만, Java 8부터는 Metaspace로 대체됐다. 힙 영역 (Heap Area) 힙 영역은 동적으로 생성된 객체 인스턴스와 배열이 저장되는 영역이다. 프로그램 실행..