Program Tip

Java 8 용 기본 가비지 수집기

programtip 2020. 10. 6. 18:58
반응형

Java 8 용 기본 가비지 수집기


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

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


기본 가비지 수집기 :

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

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

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

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


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

참고 URL : https://stackoverflow.com/questions/33206313/default-garbage-collector-for-java-8

반응형