GC (가비지 컬렉터)

Moondy·2022년 5월 13일
0

개념

  • 자바에서 불필요한 객체 정리(메모리 정리)해주는 역할
    • C, C++ 에서 개발자가 메모리 관리하니 실수로 memory leak 발생하는 일이 많았지만, 자바에서는 GC가 메모리 해제
  • Garbage란? Unreachable Object, 즉, stack 에서 더이상 참조하지 않는 객체(in Heap Memory)을 말한다
  • 동작방식
    • stop the world: JVM이 애플리케이션 실행을 멈춤. (GC 외 나머지 쓰레드 중단)
    • mark and sweep
      • 사용되는 메모리와 사용되지 않는 메모리 식별
      • 사용되지 않는 메모리 해제

GC의 장점

  • 프로그래머 생산성 향상(메모리 관리 직접 하지 않아 실수 적음)
  • 프로그램 보안상 메모리 직접 접근을 제한함으로써 시스템의 안정성과 보안성 보장

GC의 단점

  • 극한의 성능을 발휘해야 하는 프로그램을 작성하려면 C 같이 저수준 제어가 가능한 언어가 가장 좋은데, Java는 개발자가 직접 메모리 관리를 못해 상대적으로 튜닝 불가능
  • garbage collecting이 일어나는 타이밍이나 점유 시간을 미리 예측하기 어렵다 → 예측 불가능하게 일시적으로 정지할 수 있다)
profile
DevOps를 살짝 찍먹하는 BackEnd 개발자

0개의 댓글