Zz G1 신형 쓰레기 수 거 기 일별

5566 단어 G1
G1 신형 쓰레기 수 거기 일별 
원문:http://coolshell.cn/articles/1252.html
 
G1 쓰레기 수 거기
G1 쓰레기 수 거 Garbage-First Garbage Collector (G1 GC 라 고도 함) 신형 쓰레기 수 거 기 는 JDK 7 의 자바 HotSpot VM 입 니 다. 끌어들이다이 기술 은 자바 SE 6 Update 14 버 전에 서 시험 적 인 것 이 나 온 적 이 있 습 니 다. 그리고 G1. 핫 스 팟 의 반응 이 빠르다 Concurrent Mark-Sweep GC CMS) 장기 대체.
속성
G1 은 '서버 스타일 (server - style)' 의 쓰레기 회수 기 입 니 다. 주로 아래 의 속성 이 있 습 니 다.
 
병행 과 병발. G1 은 오늘 의 최신 하드웨어 에서 병행 하 는 능력 을 얻 을 수 있 습 니 다.사용 가능 한 모든 CPU (CPU 다 핵, 하드웨어 다 중 스 레 드 등) 를 사용 하여 'stop - the - world' 체 제 를 가속 화 할 수 있 습 니 다.
대 를 나 누 어 처리 하 다. 다른 핫 스 팟 쓰레기 수 거 기와 마찬가지 로 G1 은 세대 별로 나 뉘 어 져 있다. 즉, 새로 분 배 된 대상 (젊 은 세대) 과 이미 한 동안 살아 남 은 대상 (늙 은 세대) 을 처리 할 때 다 르 기 때문에 새로 만 든 대상 인 스 턴 스 를 더 많이 고려 할 것 이다. 새로 만 들 수록 회수 할 가능성 이 가장 크 고 오래된 대상 은 가끔 방문 하기 때문이다.대부분의 자바 응용 에 있어 서 이 메커니즘 은 회수 효율 을 크게 높 일 수 있다.
컴 팩 트 메모리. CMS 와 달리 G1 은 더 미 를 메모리 정리 합 니 다.압축 은 잠재 적 인 메모리 파편 문 제 를 없 앨 수 있 고 프로그램 이 더 오래 부 드 럽 게 실 행 될 수 있다.
예견 적 G1 CMS 보다 더 많은 예견 성 이 있다.이것 은 주로 메모리 조각 문 제 를 없 애 는 데 쓰 인 다.메모리 조각 이 적 으 면 Stop - the - World 의 일시 정지 시간 도 줄어든다.
묘사 하 다.
G1 은 다른 핫 스 팟 쓰레기 수 거기 에 비해 메모리 쌓 기 레이아웃 을 관리 하 는 매우 이례 적 인 방법 을 사용 했다.G1 에 서 는 대상 신세대 와 기성 세대 에서 물리 적 으로 분리 하지 않 았 다.대신 연속 적 인 메모리 더 미 를 같은 크기 의 구역 으로 나 누 었 다.새로 생 긴 대상 과 오래된 대상 은 연속 되 지 않 을 수도 있 는 일련의 지역 에 놓 여 있다.G1 이 오래된 대상 이 차지 하 는 자원 을 새로운 대상 에 게 더 유연 하 게 이동 할 수 있 도록 하기 위해 서다.
G1 의 메모리 수집 은 "분산 일시 정지" 가 발생 합 니 다. 메모리 가 하나의 예 영역 에서 회수 되 기 시작 할 때 이 영역 에서 참조 하 는 collection set 입 니 다. 다른 지역 으로 흩 어 질 것 입 니 다. 그러면 우 리 는 전체 메모리 로 다시 신청 할 것 입 니 다.분산 은 전체 프로그램의 일시 정지 가 발생 하지만 '분산' 메모리 들 은 병행 적 으로 실 행 될 수 있 습 니 다. 물론 여러 핵 이나 다 중 스 레 드 기술 로 지원 해 야 합 니 다.절대 다수의 '분산 일시 정지' 는 사용 가능 한 새로운 메모리 영역 을 수집 하기 때문에 이것 은 다른 HotSpot 쓰레기 회수 기와 같다.가끔 은 오래된 지역 의 메모리 가 회수 할 수 있 는 지 확인 할 수 있 습 니 다.
... 에 있다 CMS 에서 주기 적 으로 하 나 를 실행 합 니 다. concurrent marking phase。 이 phase 에서 가장 중요 한 것 은 어떤 오래된 지역 에 회수 할 수 있 는 대상 이 가득 한 지 식별 하 는 것 이다. 이것 은 가장 효율 적 이 고 가장 적합 한 회수 이기 때문이다.그러나 G1 에 서 는 G1 이 그 소위 말 하 는 것 을 실행 하지 않 을 것 이다. concurrent marking phase 는 그 대신 에 가장 적합 한 오래된 지역 을 식별 하 는 것 은 동시 다발 적 인 '분산 일시 정지' 에서 진행 되 는 것 이다 (나중에 소개 할 것 이다).
쓰다 G1
G1 는 아직 시험 단계 에 있 습 니 다. 다음 두 개의 매개 변 수 를 사용 하면 G1 메커니즘 을 열 수 있 습 니 다.-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC
다음은 쓰레기 수 거 기 를 설정 하 는 일시 정지 시간 입 니 다.-XX:MaxGCPauseMillis =50  (일시 정지 시간 50ms 설정)
G1 에 서 는 쓰레기 수 거 기의 일시 정지 시간 간격 을 설정 할 수 있 습 니 다.-XX:GCPauseIntervalMillis =200  (일시 정지 간격 200 ms 설정)
위의 두 매개 변 수 는 목표 일 뿐 회수 기 는 보장 되 지 않 습 니 다.그들 은 어떤 상황 에서 일 을 잘 할 수도 있 고 다른 상황 에서 안 될 수도 있 기 때문에 쓰레기 회수 기 는 항상 이 두 개의 매개 변수 설정 에 복종 하지 않 는 다.
또한 신세대 의 메모리 크기 는 설정 할 수 있 습 니 다. 이 매개 변 수 는 '분산 일시 정지' 시간 에 도 영향 을 줄 수 있 습 니 다.-XX:+G1YoungGenSize=512m  (새 세대 메모리 512 메가바이트 설정)
G1 역시 survor 공간 을 사용 할 수 있 습 니 다. 네, 이것 이 몇 개의 구역 입 니까?크기 는 일반적인 매개 변수 로 지정 할 수 있 습 니 다 (예:  -XX:SurvivorRatio=6 ).
마지막 으로 G1 의 모든 잠재력 을 발휘 하려 면 다음 두 개의 매개 변 수 를 설정 해 보 세 요. 기본적으로 닫 혀 있 습 니 다. 희귀 한 상황 에서 이 두 매개 변 수 는 race condition (경쟁 조건) 이 발생 하기 때 문 입 니 다.-XX:+G1ParallelRSetUpdatingEnabled
-XX:+G1ParallelRSetScanningEnabled

또 하 나 는 G1 이 다른 쓰레기 휴지통 보다 더 자세 한 정 보 를 보고 할 수 있다 는 것 입 니 다. 물론 아래 의 인 자 를 설정 해 야 합 니 다.
  -XX:+PrintGCDetails
이 매개 변 수 는 성능 을 보고 trouble - shooting 으로 유용 한 정 보 를 많이 출력 합 니 다.간단 한 로 그 를 원한 다 면 이 스위치 를 설정 할 수 있 습 니 다.  -verbosegc  。
상태.
G1 개발 은 현재 남아 있 는 안정성 문 제 를 해결 하고 성능 을 향상 시 키 며 다음 과 같은 제한 을 제거 하 는 데 주목한다.
G1 JVM Tool Interface (JVM TI) 는 완전히 지원 되 지 않 습 니 다. 또는 자바 Management Extensions (JMX) 이기 때문에 이러한 모니터링 과 관리 도 구 는 G1 에 정확하게 작용 하지 못 합 니 다.
G1 는 증분 의 영생 대 컬 렉 션 을 지원 하지 않 습 니 다.많은 종 류 를 마 운 트 해제 하 는 데 사용 되 기 때문에 영생 대 Collection 이 많이 필요 합 니 다. 현재 G1 은 지원 되 지 않 지만 최종 판 은 지원 합 니 다.
쓰레기 수 거 기의 일시 정지 시간 에 대해 G1 의 활약 은 CMS 에 비해 좋 았 다 나 빴 다 한다.그래서 G1 의 활약 을 더욱 안정 시 켜 야 할 일이 많 습 니 다. CMS 보다 더 나 빠 서 는 안 됩 니 다. 그렇지 않 으 면 G1 이 무슨 재미 가 있 습 니까?
관련 자원
Description of HotSpot GCs: Memory Management in the Java HotSpot Virtual Machine White Paper:  http://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf
The original CMS paper: Printezis, T. and Detlefs, D. 2000. A generational mostly-concurrent garbage collector. In Proceedings of the 2nd international Symposium on Memory Management (Minneapolis, Minnesota, United States, October 15 – 16, 2000). http://portal.acm.org/citation.cfm?id=362422.362480  (requires access to ACM’s portal)
The original G1 paper: Detlefs, D., Flood, C., Heller, S., and Printezis, T. 2004. Garbage-first garbage collection. In Proceedings of the 4th international Symposium on Memory Management (Vancouver, BC, Canada, October 24 – 25, 2004).  http://portal.acm.org/citation.cfm?id=1029879  (requires access to ACM’s portal)
G1 talk from JavaOne 2008:  http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-5419&yr=2008

좋은 웹페이지 즐겨찾기