반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 데이터베이스
- 인공지능
- CD
- CI
- sql
- MySQL
- JPA
- libasm
- 오블완
- 소켓
- 네트워크
- Xcode
- jenkins
- 아이패드다이어리
- 스프링부트 웹 소켓
- 스프링
- 스프링부트
- springboot
- 리눅스
- 다이어리
- 티스토리챌린지
- swift
- Spring
- javascript
- IOS
- AI
- 42seoul
- 프로그래밍언어론
- 오라클
- DBMS
Archives
- Today
- Total
Hi yoahn 개발블로그
java 가비지 컬렉션 본문
반응형
Java 가비지 컬렉션
더 이상 사용되지 않는 객체를 자동으로 메모리에서 회수하는 JVM의 핵심 기능 중 하나입니다.
즉, 개발자가 free() 같은 메모리 해제 코드를 작성하지 않아도, JVM이 자동으로 힙 메모리를 관리해 줍니다.
가비지 컬렉션 대상
참조되지 않는 객체는 수거 대상이 됨
가비지 컬렉션 방식
Mark And Sweep
Mark: Root Space 로부터 그래프 순회를 통해 연결된 객체들을 찾아 마킹
Sweep: 참조하고 있지 않은 객체들을 제거한다
Compact: Sweep 후에 분산된 객체들을 Heap 의 시작 주소로 모아 메모리가 할당된 부분을 압축
가비지 컬렉션 동작 과정
JVM 의 힙 영역
동적으로 데이터가 저장되는 공간으로, 가비지 컬렉션 대상 공간
Heap 영역의 설계 전제
1. 대부분의 객체는 일회성이다
2. 오래된 객체에서 새로운 객체로의 참조는 적게 발생한다.
보통 오래된 객체는 새로운 객체를 참조하지 않으므로, Young 영역만 수집해도 메모리 회수가 가능하다.(Minor GC)
효율적인 메모리 관리를 위한 메모리 구조
Young / Old Generation
Young 영역
새롭게 생성된 객체가 할당되는 곳
대부분의 객체가 빠르게 사라짐
Minor GC
Old 영역
Young 영역에서 오래 살아남은 객체들이 복사되는 곳
Young 영역보다 크고, 가비지는 적게 발생한다
Major GC, Full GC
Stop-the-World 가 발생하는 GC
영역이 커서 GC 오래 걸림
반응형
Comments