>  기사  >  Java  >  Java의 CMS 재활용기에 대한 간략한 소개(그림 및 텍스트)

Java의 CMS 재활용기에 대한 간략한 소개(그림 및 텍스트)

不言
不言앞으로
2018-09-28 13:59:012782검색

이 기사는 Java의 CMS 리사이클러에 대한 간략한 소개(그림 및 텍스트)를 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 될 수 있습니다.

CMS(Concurrent Mark Sweep) 컬렉터

마크 제거 알고리즘을 사용하며 멀티 스레드 병렬 수집을 사용하는 가비지 컬렉터이기도 합니다.

CMS 주요 작업 단계

CMS 작동의 주요 단계는 초기 마킹, 동시 마킹, 사전 정리, 재마킹, 동시 지우기 및 동시 재설정입니다. 초기 마킹과 재마킹은 시스템 리소스에만 적용되는 반면, 사전 정리, 동시 마킹, 동시 지우기, 동시 재설정은 사용자 스레드와 함께 실행될 수 있습니다. 따라서 애플리케이션이 실행되는 동안 가비지 수집을 수행할 수 있습니다.

Java의 CMS 재활용기에 대한 간략한 소개(그림 및 텍스트)

마크 앤 클리어 알고리즘에 따르면 초기 마킹, 동시 마킹, 재마킹은 모두 재활용이 필요한 개체를 표시하기 위한 것입니다. 동시 정리는 마킹이 완료된 후 쓰레기 개체를 재활용하는 것입니다. 동시 재설정은 가비지 수집이 완료된 후 CMS 데이터 구조 및 데이터를 다시 초기화하여 다음 가비지 수집을 준비하는 것을 의미합니다.

전체 CMS 재활용 프로세스 중에 기본적으로 동시 표시 후 사전 청소 작업이 수행됩니다(사전 청소를 수행하지 않도록 -XX:CMSPrecleaningEnabled 매개 변수를 설정할 수도 있음). 사전 청소는 정식 청소를 준비하고 확인하는 것 외에도 일시 중지 시간을 제어하려고 시도합니다. Remarking은 CPU 전용이기 때문에, 차세대 GC가 발생한 직후에 Remarking이 실행되면 Pause 시간이 매우 길어질 수 있습니다. 이러한 상황을 피하기 위해 pre-cleaning 시 차세대 GC가 발생할 때까지 기다린 후, 과거 성능 데이터를 기반으로 차세대 GC가 발생할 수 있는 시점을 예측하고, 그 사이의 중간 순간에 다시 표시하면 됩니다. 현재 시간과 예상 시간. 이런 방식으로 차세대 GC와 re-marking 간의 중복을 최대한 방지할 수 있으며, 일시정지 시간을 최대한 줄일 수 있습니다.

CMS 주요 매개변수 설정

-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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제