IT/Programming

JVM GC(Garbage Collector) - (1) GC란 무엇인가?

Jany 2022. 4. 25. 13:47
반응형
  • GC (Garbage Collector)
    • JAVA 특성상 JVM에서 구동됨
    • 객체가 생성되면 JVM Heap 메모리 점유
      • 객체가 참조 되지 않아도 점유하고 있음
      • 한정된 메모리에 사용되고 있지 않은 객체가 메모리 공간을 잡고 있어서 자동 수행

 

  • MajorGC (FullGC)
    • Minor GC 에서 삭제 되지 않고, Old Generation 영역으로 옮겨진 객체중 미사용 객체 삭제
  • MinorGC
    • 힙메모리의 Young Generation (Eden, Survivor1/2) 객체 삭제

  • STW (Stop-The-World)
    • GC 발생시 JVM은 애플리케이션을 멈추고, GC만 동작
    • STW 발생시 장애가 발생될 수 있음

 

  • GC 발생 과정
    • 객체 생성시 Eden 에 생성됨
    • Eden이 가득차게 되면 참조 중인 객체를 Survivor 1영역으로 이동
      • Eden의 객체 크키가 남아 있는 Survivor 영역보다 크면 OLD 영역으로 이동
    • Survivor 영역이 가득차면 Minor GC 발생
      • 참조가 없으면 삭제
      • 참조가 있으면 Survivor2 로 이동
      • 반복 이후 계속 참조하면 OLD로 이동

 

반응형