JVM 메모리와 JVM 튜닝 (4 개) - 스팸 메일을 구별하는 방법

「참조 횟수 "방법에 대한 참조 번호 및 상기 상술 한 통계적 제어에 의해 제거 할 때 발생하는 결정. 개체 수에 쓰레기 수집 절차는 0입니다. 그러나 이것은 순환 참조가 해결되지 않습니다. 그래서, 다음, 쓰레기 판단 알고리즘 구현, 실행중인 루트 노드에서 시작, 전체 객체 참조를 통과 살아 남기 위해 개체를 찾을 수 있습니다. 그리고이 방법의 실현은 가비지 컬렉션은 어디를 시작 ? 즉, 경우 현재 시스템에서 사용되는 개체를 찾아 시작합니다. 스택이 실제로 이렇게 객체가 사용되는 것을 얻을, 프로그램 실행 장소를 실시 힙 이상 스택 분석, 차이, 그것은 자바 스택에서 시작해야합니다. 동시에, 해당 스레드 스택은 여러 스레드가 그렇다면, 당신은 스레드에 해당하는 모든 스택을 선택해야합니다.

    한편, 스택뿐만 아니라, 시스템이 실행되고있는 레지스터에 부가하여, 프로그램을 조작 데이터에 저장된다. 따라서, 기준 스택 또는 그래서, 우리는 힙 객체를 찾을 수 있으며, 이러한 다른 객체의 힙 참조 찾기에서, 이러한 참조는 서서히 팽창하고, 최종적으로 널 레퍼런스 또는 기본 유형의 끝, 시작 포인트로서 등록 스택에 여러 개의 참조가있는 경우 자바 객체 대응의 형성은, 루트 오브젝트 트리로 참조 스택, 최종 오브젝트 트리 여러 위성을 형성 할 것이다. 객체 트리의 객체에서 이러한 객체는 가비지 수집 할 수없는 현재의 시스템을 실행하는 데 필요한. 다른 나머지 객체는 객체에 대한 참조로 간주 될 수없고, 가비지 컬렉션으로 처리 될 수있다.

따라서, 가비지 콜렉션은 루트 객체 (자바 스택, 정적 변수, 레지스터 ...) 중 일부의 시작 지점이다 . 가장 간단한 자바 스택은 주요 기능 자바 프로그램의 실행이다. 이러한 복구 방법, 또한 상기 "마커 - 지우기"복구 모드

 

 

어떻게 쓰레기를 처리하는 방법

   때문에 다른 생존 기간에 자바 그렇게하지 메모리 통합, 조각난 메모리 조각화가 발생하는 경우, 몇 시간 동안 실행 한 후, 개체를 필요는 없다. 가장 즉각적인 문제는 분열 메모리 공간 및 공정 효율의 청크를 할당 할 수 없습니다 낮은 이어질 것입니다. 그래서, 기본적으로 가비지 컬렉션 알고리즘은 위에서 언급, "복사"모드와 "마크 - 마무리"모드, 당신은 파편의 문제를 해결할 수 있습니다.

 

 

객체 생성의 동시 존재를 해결하고 문제를 재활용 객체 방법

    가비지 콜렉션 스레드는 메모리의 회수하고 프로그램 실행 스레드를 소비 (또는 분포) 메모리는, a는 메모리, 메모리 할당을 회수 이러한 관점에서, 두 개의 모순이다. 따라서, 기존의 가비지 컬렉션 모드 전에, 가비지 컬렉션을 수행하기 위해, 일반적으로 전체 응용 프로그램을 일시 중지해야합니다 (예 : 일시 정지 할당 된 메모리), 다음, 쓰레기 수거, 재활용 및 다음 응용 프로그램을 작성하는 것을 계속한다. 이 구현은 모두의 모순을 해결하는 가장 직접적이고 가장 효과적인 방법입니다.

그러나 명백한 결함이 지속적으로 증가 힙 공간, 가비지 컬렉션 시간이 상응하게 될 것입니다 때이 계속 증가하고있다,있다, 해당 응용 프로그램을 일시 정지 시간이 방법에 상응하는 증가 될 것입니다 . 등 필요한 최대 일시 정지 시간 등의 시간 요구 사항을 해당 고교 응용 프로그램은 몇 백 밀리 초, 몇 G보다 힙 공간, 그것은이 경우,이 제한을 초과 할 가능성이있을 때 다음, 쓰레기 수집 시스템이 될 것입니다 병목이 실행됩니다. 와,이 충돌을 해결하기 위해 동시 가비지 컬렉션 알고리즘 이 알고리즘을 사용하여 스레드를 실행하는 가비지 컬렉터 스레드가 동시에 실행합니다. 이러한 방법으로, 크게 시스템의 처리 용량을 증가시킬 알고리즘의 복잡성이 동시에 감소 될 문제가 일시 정지를 해결할뿐만 아니라 필요하기 때문에하는 새로운 객체가 생성되는 동시에 객체를 복구하는 "조각"문제의 의지 해결하기 어려운.

 

- 발췌 : HTTPS : //www.iteye.com/blog/pengjiaheng-523230

추천

출처www.cnblogs.com/gllegolas/p/11995191.html