JVM-5-GC (가비지 컬렉션) 가비지 컬렉션

GC (가비지 컬렉션) 가비지 컬렉션
 
가비지 컬렉션은 무엇입니까
가비지 콜렉션은 자동 오브젝트가 더 이상 가비지 컬렉션 알고리즘의 특정 기능에 따라 자원의 자동 복구를 구현하는 프로그램에 의해 참조되는 방출하지 않는 동적 저장 관리 기술이다. 객체가 메모리를 참조가 더 이상있을 때 공간을 피하기 메모리 누수에 새 개체를 사용하여 나중에이었다, 그래서 그것이 차지하는 공간을 확보합니다.
 
 
메모리는 더 이상 우주 쓰레기에 사용중인
 
C 가비지 콜렉션은 인공, 과중한 업무,하지만 높은 제어입니다.
자바는 자동화되어 있지만 제어는 때로는 메모리 오버 플로우가 발생, 가난
과도한 JVM 할당되는 메모리에서 객체의 메모리 오버 플로우가 할당 된 메모리의 최대 크기를 초과한다.
 
전화 할 때 이루어지는 시스템은 () 가비지 컬렉터를 호출하는 데 사용됩니다, 가비지 컬렉터가 사용되지 않은 메모리 공간을 확보하기 위해 실행됩니다. 이 객체가 차지하는 메모리 폐기하기를 해제하려고합니다.
그러나으로 System.gc () 호출에만 문 보장은없는 가비지 컬렉터에 대한 호출이.
그래서으로 System.gc ()는 가비지 컬렉션에 완벽한 구상이라고 할 수 없습니다.
 
 
개체를 복구해야하는 확인하는 방법에 JVM을
 
객체가 재생되는지 여부를 두 고전 알고리즘 : 참조 카운팅, 도달 가능성 분석 알고리즘.
 
참조 카운팅
JVM은 각각 오브젝트에 대한 레퍼런스 카운트를 유지 제로의 대상물 (A)의 참조 카운트는 오브젝트 참조 오브젝트 A, 재활용 할 수있는 오브젝트 설명 된 어떠한 작업이없는 것으로 가정하지만, 레퍼런스 카운트는 순환 참조를 해결할 수없는 문제점이있다.
 
도달 가능성 분석 알고리즘
참조주기 계산 방법 참조 문제를 해결하기 위해, 자바 메소드 도달 가능성 분석을 사용하여.
GC 뿌리 일련 GC 뿌리은 개체 입증되고, 기준 경로가 객체 GC 뿌리 참조가 없을 때 결합 사슬, 체인 검색 불리는 노드로부터 하방으로 검색을 시작하는 시작점으로 지정된 오브젝트 를 사용할 수 없습니다.
Java에서는, 객체는 다음과 같은 범주의 GC 뿌리로서 사용할 수있다 :
* 가상 머신 스택 참조 된 개체;
* 메소드 영역 클래스 정적 오브젝트 속성 기준;
* 객체 참조의 불변 영역에있어서;
* JNI를 객체 참조 (즉, 일반적으로는 상기 원시 메소드)에서 원시 메소드 스택;
 
객체 인 경우, GC 뿌리를 통해 전체 시간은 객체를 복구 할 수 있음을 나타냅니다 검색하지,하지만 복구는 GC의 기분에 따라 달라 때!
 
개체를 재활용 할 수있는 두 가지를 결정한 후, JVM은 어떤 시간에 재생됩니다
 
1 유휴 CPU 시간에 자동으로 복구됩니다
힙 메모리에 2 저장 장치가 가득 찼 후
3 이니셔티브으로 System.gc ()를 복구하려는 시도 호출
 
 
 
 

추천

출처www.cnblogs.com/wf-zhang/p/11965848.html