가비지 수집 알고리즘의 다른 최적화 및 풍미가 있습니다. 여기서 설명하고 싶은 만큼, 다른 엔진이 다른 조작과 기술을 구현하기 때문에 보류해야합니다. 그리고 더 중요한 것은 엔진이 발전함에 따라 상황이 변하기 때문에 실제 필요없이 “사전에”더 깊이 들어가는 것은 아마도 가치가 없을 것입니다. 하지 않는 한, 물론, 그것은 순수한 관심의 문제, 다음 아래 당신을 위해 몇 가지 링크가 있을 것입니다. JVM에는 성능을 튜닝할 때 중점을 두는 세 가지 구성 요소가 있습니다. 힙은 개체 데이터가 저장되는 위치입니다. 그런 다음 이 영역은 시작 시 선택한 가비지 수집기에서 관리합니다. 대부분의 튜닝 옵션은 힙 크기를 조정하고 상황에 가장 적합한 가비지 수집기를 선택하는 것과 관련이 있습니다. JIT 컴파일러도 성능에 큰 영향을 미치지만 JVM의 최신 버전으로 튜닝할 경우는 거의 없습니다. finalize() 메서드는 개체가 가비지 수집되기 전에 매번 호출됩니다.

이 메서드는 정리 처리를 수행하는 데 사용할 수 있습니다. 이 메서드는 Object 클래스에서 정의 됩니다: G1 수집기는 성능 효율성이 높기 때문에 CMS 수집기 대체 합니다. 이름에서 가비지 콜렉션은 메모리에서 가비지 찾기 및 삭제를 처리하는 것처럼 보입니다. 그러나 실제로 가비지 콜렉션은 JVM 힙 공간에서 사용할 수 있는 모든 개체를 추적하고 사용하지 않는 개체를 제거합니다. 최신 엔진은 가비지 수집의 고급 알고리즘을 구현합니다. C와 같은 프로그래밍 언어에서는 메모리 할당 및 할당 할당이 수동 프로세스입니다. Java에서 메모리 할당 해제 프로세스는 가비지 수집기에서 자동으로 처리됩니다. 기본 프로세스는 다음과 같이 설명할 수 있습니다. 우리는 분명히 오른쪽에 “도달 할 수없는 섬”을 볼 수 있습니다. 이제 “마크 앤 스윕” 가비지 수집기에서 가비지 수집기의 처리 방식을 살펴보겠습니다. CMS 수집기는 일시 중지 시간이 부족하고 가비지 수집기와 리소스를 공유할 수 있는 응용 프로그램에 사용해야 합니다.

예를 들어 이벤트에 응답하는 데스크톱 UI 응용 프로그램, 요청에 응답하는 웹 서버 또는 쿼리에 응답하는 데이터베이스가 있습니다. 단일 CPU가 있는 호스트에서 병렬 가비지 수집기가 요청된 경우에도 기본 가비지 수집기가 사용됩니다. 두 개의 CPU가 있는 호스트에서는 병렬 가비지 수집기는 일반적으로 기본 가비지 수집기뿐만 아니라 2개 이상의 CPU가 있는 호스트에서 젊은 세대 가비지 수집기 일시 중지 시간을 줄일 수 있습니다.