이 기사는 Java의 CMS 리사이클러에 대한 간략한 소개(그림 및 텍스트)를 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 될 수 있습니다.
마크 제거 알고리즘을 사용하며 멀티 스레드 병렬 수집을 사용하는 가비지 컬렉터이기도 합니다.
CMS 작동의 주요 단계는 초기 마킹, 동시 마킹, 사전 정리, 재마킹, 동시 지우기 및 동시 재설정입니다. 초기 마킹과 재마킹은 시스템 리소스에만 적용되는 반면, 사전 정리, 동시 마킹, 동시 지우기, 동시 재설정은 사용자 스레드와 함께 실행될 수 있습니다. 따라서 애플리케이션이 실행되는 동안 가비지 수집을 수행할 수 있습니다.
마크 앤 클리어 알고리즘에 따르면 초기 마킹, 동시 마킹, 재마킹은 모두 재활용이 필요한 개체를 표시하기 위한 것입니다. 동시 정리는 마킹이 완료된 후 쓰레기 개체를 재활용하는 것입니다. 동시 재설정은 가비지 수집이 완료된 후 CMS 데이터 구조 및 데이터를 다시 초기화하여 다음 가비지 수집을 준비하는 것을 의미합니다.
전체 CMS 재활용 프로세스 중에 기본적으로 동시 표시 후 사전 청소 작업이 수행됩니다(사전 청소를 수행하지 않도록 -XX:CMSPrecleaningEnabled 매개 변수를 설정할 수도 있음). 사전 청소는 정식 청소를 준비하고 확인하는 것 외에도 일시 중지 시간을 제어하려고 시도합니다. Remarking은 CPU 전용이기 때문에, 차세대 GC가 발생한 직후에 Remarking이 실행되면 Pause 시간이 매우 길어질 수 있습니다. 이러한 상황을 피하기 위해 pre-cleaning 시 차세대 GC가 발생할 때까지 기다린 후, 과거 성능 데이터를 기반으로 차세대 GC가 발생할 수 있는 시점을 예측하고, 그 사이의 중간 순간에 다시 표시하면 됩니다. 현재 시간과 예상 시간. 이런 방식으로 차세대 GC와 re-marking 간의 중복을 최대한 방지할 수 있으며, 일시정지 시간을 최대한 줄일 수 있습니다.
-XX:+ConcMarkSweepGC를 사용하여 CMS 리사이클러 활성화
-XX:ConcGCThreads 동시 스레드 수 설정#🎜🎜 ## 🎜🎜#-XX:CMSInitiatingOccupancyFraction Old Generation의 사용률이 N에 도달하면 CMS 재활용을 수행하도록 설정합니다.
-XX:+UseCMSCompactAtFullCollection CMS는 가비지 수집이 완료된 후 조각 모음을 수행합니다.
-XX:CMSFullGCsBeforeCompaction CMS 재활용 N회 후 메모리 압축을 설정합니다.
-XX:+CMSClassUnloadingEnabled CMS 메커니즘을 사용하여 Perm 영역 클래스 데이터 재활용
위 내용은 Java의 CMS 재활용기에 대한 간략한 소개(그림 및 텍스트)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!