자바기초
동적할당, 정적할당, 가비지컬렉터
yb12
2020. 5. 13. 12:48
동적 메모리 할당
프로그램이 실행되는 시간 동안 사용할 메모리 공간을 할당하는 것이다. 프로그램 종료시 메모리 공간을 반납하고 다시 실행하면 재 할당을 받는다.
정적 메모리 할당
메모리 할당 방법중 하나로 메모리의 크기가 하드 코딩되어 있기 때문에 프로그램이 실행될 때 이미 해당 메모리의 크기가 결정되는 것이 특징
가비지 컬렉터
가비지 : 정리되지 않은 메모리, 유효하지 않은 메모리 주소 (쓰레기)
GC의 과정을 Mar and Sweep 이라고 한다
GC가 스택의 모든 변수 또는 Reachable 객체를 스캔하면서 각각 어떤 객체를 참조하고 있는지 찾는 과정이 Mark라고 한다.
이 과정에서 Stop the World 가 발생한다
이후 Mark 되어 있지 않은 객체들을 힙에서 제거하는 과정이 Sweep 이다.
stop the World란?
GC를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는것임 stop the World 가 발생하면 GC를 실행하는 스레드를 제외한 나머지 스레드는 모두 작업을 멈추게 됨 대개의 경우 GC 튜닝이란 stop the world 시간을 줄이는 것임