반응형
[10분 테코톡] 👌던의 JVM의 Garbage Collector - YouTube
영상을 본인이 이해하기에 조금 더 쉬운 방향으로 정리하며 내용을 곱씹을 목적으로 포스팅 되었다. GC도구에 대한 내용은 첨부되지 않았다.
1. What?
: "JVM의 Garbage Collector"란 무얼 말하고자 하는것인가?
1) JVM(Java Virtual Machine)
자바의 구동프로그램 중 하나로, 메모리적재(불러오기), Ram영역 관리, 소스코드를 읽고 실행시키는 기능을 한다.
즉, 운영체제의 메모리 영역에 접근하여 메모리를 관리할 수 있는 프로그램으로, 메모리 관리와 Garbage Collector을 수행하는 역할을 한다.
2) Garbage Collector : 이하 GC
메모리를 간단하게 관리하기 위한 목적으로 생기게 된 개념이다.
동적으로 할당한 메모리 영역(Heap) 중 사용하지 않는 영역을 탐지하여 해제하는 기능을 한다.
즉, GC란 메모리 관리 방법 중의 하나로, 프로그래머가 동적으로 할당한 메모리 영역 중 더 이상 쓰이지 않는 영역을 자동으로 찾아내어 해제하는 기능이다.
<나무위키 참조>
3) Heap & Stack
- Heap : 동적으로 할당한 메모리 영역이다. 모든 Object타입의 데이터가 Heap에 할당된다. 이때 Object를 가리키는 참조변수는 Stack에 할당한다.
- Stack : 정적으로 할당한 메모리 영역이다. 원시타입의 데이터가 값과 함께 할당된다. Heap영역에 생성된 Object타입의 데이터 참조값을 할당한다.
하단의 블로그 링크를 확인하면, 위 내용을 전체적으로 이해하는데에 있어 큰 도움이 된다.
2. How?
: GC의 과정
1) mark & Sweep
: GC의 과정은 mark와 Sweep으로 진행된다.
- mark : GC가 Stack의 모든 변수를 스캔하면서 각각 어떤 객체를 참조하고 있는지 찾아서 마킹(식별)한다. Reachable Object가 참고하고 있는 객체 또한 찾아서 마킹(식별)한다.
- Sweep : 마킹되지 않은 객체를 Heap에서 제거한다. (사용되지 않는 객체는 쓸어서 제거한다.) 해당 과정이 완료되면 메모리는 아래와 같은 상태가 된다.
3. When?
: GC의 발생은 자동으로, 즉 수시로 이루어진다고 이야기 할 수 있다. Heap의 메모리가 발생하는한 GC는 계속적으로 끊임없이 작동한다. 이때 CG의 진행은 minor와 major로 구분되어 발생한다. 해당 과정을 이해하기 쉽도록 정리된 블로그의 포스팅주소를 아래에 첨부하였다. 상단의 "old영역"까지만 읽더라도 본 포스팅에서 이해하고자 하는 가벼운 정도의 지식을 가질 수 있다고 판단하였다.
반응형
'영상리뷰' 카테고리의 다른 글
[우아한테크] 콜린 : Flex Layout (0) | 2022.02.10 |
---|---|
[영상리뷰] 우아한테크_무민 : JVM Stack&Heap (0) | 2022.01.22 |
[영상리뷰] 우아한테크_스티치 : 빌드배포 (0) | 2022.01.15 |
[영상리뷰] 우아한테크_에헴 : 빌드용어 (0) | 2022.01.12 |
[영상리뷰] 우아한테크_제이 : 시간복잡도 (0) | 2022.01.11 |