>  기사  >  php教程  >  JVM의 가비지 수집기

JVM의 가비지 수집기

高洛峰
高洛峰원래의
2016-11-22 16:56:121944검색

직렬 수집기: 재활용을 위해 복사 알고리즘을 사용하는 차세대 단일 스레드 수집기입니다. 가비지 수집 중에는 다른 사용자의 모든 스레드가 일시 중지됩니다.

Serial Old Collector: Mark-Clear 알고리즘을 사용하는 Serial의 구세대 버전도 단일 스레드 수집기입니다.

ParNew 컬렉터: ParNew 컬렉터는 실제로 멀티스레드 버전의 Serial입니다. 멀티스레드 가비지 컬렉션 외에 수집 알고리즘(복사 알고리즘), 객체 할당 규칙, 재활용 전략 등을 포함합니다. 모두 직렬 수집과 동일합니다. 장치는 완전히 동일합니다.

병렬 스캐빈지 컬렉터: 복사 알고리즘을 사용하는 차세대 컬렉터이며 병렬 멀티스레드 컬렉터입니다. 이 컬렉터는 시스템의 처리량(사용자 코드 실행 시간/(시간)을 향상시키기 위해 설계되었습니다. 사용자 코드 실행 + 가비지 수집 시간)), 따라서 병렬 스캐빈저 수집기는 "처리량 우선 순위" 수집기라고도 합니다.

Parallel Old Collector: 'mark-clear' 알고리즘을 사용하는 Parallel Scavenge Collector의 구세대 버전입니다.

CMS Collector: 사용자 서비스의 응답 속도에 특별히 주의를 기울이고 있으며, 시스템 정지 시간을 최소화하여 사용자에게 더 나은 경험을 제공할 수 있기를 바랍니다. 동시 수집, 낮은 일시 중지. 대신 'mark-and-sweep' 알고리즘이 사용됩니다.

G1 컬렉터: 현재 컬렉터 기술 개발에서 가장 최첨단 기술 중 하나

병렬 및 동시성 방법


세대별 컬렉션을 채택하면 다른 컬렉터와 협력하지 않고도 전체 GC 힙을 독립적으로 관리할 수 있습니다.


공간 통합: 전반적으로 G1은 'mark-organize' 알고리즘을 사용하지만 로컬에서 관점에서는 "복사" 알고리즘을 기반으로 합니다. 그러나 어떤 경우에도 두 알고리즘 모두 G1 알고리즘이 메모리 공간 조각화를 생성하지 않으며 수집 후 정기적으로 사용 가능한 메모리를 제공할 수 있음을 의미합니다.


작업 단계: 초기 마킹, 최종 마킹, 재활용.

비고:

동시성: 가비지 수집 스레드는 사용자 스레드와 동시에 실행될 수 있습니다.

병렬: 여러 개의 가비지 수집 스레드가 있을 수 있지만 사용자는 스레드는 현재 상태에서 여전히 대기 중입니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.