웹개발/HTML

#자바 튜닝 (GC - Garbage Collector)

에르소 2014. 7. 4. 18:55
반응형


가비지 컬렉터(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