* 가비지 컬렉터(Garbage Collector) 는 다음의 역할을 수행.
- 메모리 할당
- 사용중인 메모리 인식
- 사용하지 않는 메모리 인식
※ Hang(행) : 서버가 요청을 처리 못하고 있는 상태를 의미
Young 영역 - Eden , Survivor / Survivor 으로 나뉘며
Old 영역 - 메모리영역으로 나뉘어집니다
[Eden 영역에 객체 할당된 경우]
메모리에 객체가 생성되면 가장왼쪽 Eden 영역에 객체가 지정되어지는데, 데이터가 어느정도 쌓이면 Eden 영역에 있던 객체가 옮겨지거나 삭제됩니다
옮겨가는 위치가, Survivor 영역 입니다.
Survivor 영역은 우선 순위가 없으며, 반드시 한 영역은 비어있어야, 비어있는 영역에 Eden 영역에 있던 객체가 할당됩니다.
[Eden -> Survivor 영역에 할당되는 경우]
[Eden -> Survivor 영역에 할당되는 경우]
Eden 영역에 있던 객체들은 Survivor 영역의 둘 중 하나의 할당되며
할당된 Survivor 영역이 차면,(GC, Garbage Collector) 가비지 컬렉터가 되면서 Eden 영역에 있는 객체와 꽉 찬 Survivor 영역에 있는
객체가 비어있는 Survivor 영역으로 이동 더 큰객체가 생성되거나, Young 영역에 공간이 남지 않으면 객체들은 Old 영역으로 이동
(GC, Garbage Collector) 종류
* 마이너 GC: Young 영역에서 발생하는 GC
* 메이저 GC: Old 영역이나, Perm 영역에서 발생하는 GC
두가지의 GC가 어떻게 상호작용을 하느냐에 따라서 GC 방식에 차이가 나며, 성능차이도 있다.
GC 가 발생하거나 객체가 각 영역에서 다른 영역으로 이동할 때 애플리케이션의 병목이 발생하면서, 성능에 영향을 주게됩니다.
핫스팟 (HotSpot) JVM 에서는 "스레드 로컬 할당 버퍼(TLABs: Thread-Local Allocation Buffers)" 를 사용합니다.
'웹개발 > HTML' 카테고리의 다른 글
MySQL 설치 / 이클립스 세팅 (0) | 2014.07.07 |
---|---|
스택(Stack) (0) | 2014.07.07 |
#자바 튜닝 (J2EE 디자인 패턴) (0) | 2014.07.03 |
#자바 튜닝 (MVC 패턴) (0) | 2014.07.03 |
HTML5 힌트 (0) | 2014.07.01 |