Java 8 용 기본 가비지 수집기


94

Java 8의 기본 가비지 수집기는 무엇입니까?

JMX Bean을 확인하면 새로운 세대의 경우 병렬 수집기이고 이전 세대의 경우 이전 직렬 수집기임을 알 수 있습니다.

답변:


128

기본 가비지 수집기 :

  • 자바 7-병렬 GC
  • 자바 8-병렬 GC
  • 자바 9-G1 GC
  • 자바 10-G1 GC

80

기본 가비지 수집기를 선택하는 것은 JVM 의 인체 공학적 프로세스 라고합니다 . 이 프로세스는 컴퓨터의 클래스에 따라 다릅니다.

  • 2 개 이상의 물리적 프로세서와 2GB 이상의 물리적 메모리 (플랫폼에 관계없이)가있는 시스템으로 정의되는 서버급 시스템의 경우 기본 가비지 수집기는 병렬 수집기 (처리량 수집기라고도 함)입니다.
  • Windows 또는 단일 프로세서 시스템에서 32 비트 플랫폼으로 정의 된 클라이언트 클래스 시스템의 경우 기본 가비지 수집기는 직렬 수집기입니다.

사실상 모든 머신이 2 개 이상의 CPU를 가지고 있기 때문에 머신은 사실상 JVM에서 항상 서버급으로 간주됩니다. 그렇기 때문에 병렬 수집기가 기본 가비지 수집기로 간주되는 많은 참조를 찾을 수 있습니다.


54

Java에는 4 가지 유형의 가비지 수집기 (버전 10까지)가 있지만 Java 11 안정 릴리스 이후에는 5 가지 유형이됩니다. 이것들은:-

  1. 직렬 가비지 수집기 S GC
  2. 병렬 가비지 수집기 P GC
  3. CMS 가비지 수집기 CMS GC
  4. G1 가비지 수집기- G1 GC
  5. Z 가비지 수집기- ZGC

자바에서 GC의 기본 구현-

JVM GC

 Java 7 - P GC       
 Java 8 - P GC
 Java 9 - G1 GC
 Java 10- G1 GC
 Java 11- Z GC(I am not sure but it would be default GC of java 11)

ZGC에 대한 자세한 내용은 다음을 방문하십시오.

http://openjdk.java.net/projects/zgc/

https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/

참고 : JVM에서 현재 사용중인 GC를 확인하려면 다음 명령으로 이동하여 기본 GC를 표시 할 수 있습니다.

$ java -XX:+PrintCommandLineFlags -version 

필요에 따라 GC를 설정하려면 다음 명령을 사용하면됩니다. 여기서는 G1 GC를 기본 GC로 설정하겠습니다.

$ java -XX:+UseG1GC -XX:+PrintCommandLineFlags -version 

여기에 이미지 설명 입력

For more details , please visit 

https://javapapers.com/java/types-of-java-garbage-collectors/

https://alvinalexander.com/java/java-jvm-how-show-which-garbage-collector-running


자세한 내용은 그림의 소스를 언급하는 것이 유용 할 것
xagaffar

2
안녕하세요 @xagaffar 여기 소스의 URL입니다 javapapers.com/java/types-of-java-garbage-collectors
Brajesh

2
@Brajesh ZGC가 JDK 11의 기본 GC라고 생각하지 않습니다. JDK wiki ( wiki.openjdk.java.net/display/zgc/Main )를 엽니 다 . ZGC. " 이는 기본값이 아님을 의미합니다.
Ashish Kumar

1
아니요, JDK11의 기본값이 아닙니다. -XX : + UnlockExperimentalVMOptions -XX : + ZGC 옵션을 사용하여 ZGC가 ZGC를 잠금 해제하도록 설정
vsingh

1
그림의 순서도는 "직렬", "병렬"및 "동시"가비지 수집기의 차이점을 설명하는 데 매우 유용하지만 G1 수집기에 대한 이러한 9 가지 색상 사각형으로 인해 정말 무의미합니다. 무슨 뜻이야? 스레드가 사각형이됩니까?
Holger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.