-
Generational Concurrent Garbage Collection 전략은 짧은 기간동안만 존재하는 object 가 많은 앱에 적합하다.
-
-Xgcpolicy:gencon command line option 으로 해당 GC 를 activate 시킬 수 있다.
-
Java heap 은 두 영역으로 나뉜다.
하나는 새로운(new or nursery) 영역, 그리고 다른 하나는 오래된(old or tenured(재임)) 영역이다.
new area에 생성된 objects 들이 오랜 기간동안 참조를 유지한다면 이것들은 old area 로 이동한다.
참조가 오래 유지된다는 것은 GC 가 되오는 동안 계속 살아남은 녀석들이다. (그 기간을 tenure age 라고 부른다.)
-
new area 는 2개의 논리적 공간으로 구분된다.
allocate 와 survivor 이다.
object 들은 allocate space 로 할당된다.
이 영역이 꽉 차면 GC 가 scavenge(쓰레기 뒤지기) 라고 부르는 작업을 시작한다.
쓰레기를 뒤지는 동안, reachable 한 녀석들은 survivor space 로 이동하며, 이 중 tenured age 를 넘긴 녀석들은 tenured space(old area)로 이동한다.
모든 이동작업이 완료되면, survivor space 와 allocate space 는 역할을 바꾼다 (allocate space 는 empty 가 되고, survivor space 는 gc 이후 모두 reachable 인 것이다.)
-
끝!!
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] Direct Share since MOS (0) | 2020.07.30 |
---|---|
[android] RecyclerView 에서 Drag 와 Swipe 구현하기 (1) | 2020.07.29 |
[android] ART 의 JIT (Just-In-Time) Compiler 에 대해 알아보자 (0) | 2020.07.27 |
[android] App 이 kill 되면 Alarm 이나 Job 은 어떻게 될끼? (0) | 2020.07.26 |
[android] Recent app 에서 swipe 로 app 을 죽이면 process kill 이 될까? (0) | 2020.07.25 |
댓글