🚖

V8 Minor GC

Scavenger

notion image
Cheney's 알고리즘 의 원리로 작동
스캐빈저 알고리즘은 작은 데이터들을 관리하는데 유용
스캐빈저 GC 는 자주 발생
병렬의 헬퍼 스레드들을 사용하기때문에 아주 빠름
 
V8 From Space
공간이 다 차게 되면, minor GC가 발동
 

Minor GC

  1. minor GC는 재귀적으로 from space의 객체 그래프를 훑으면서 active(사용되고 있는 메모리)를 찾아내어 포인터를 수정하여 to space로 이동시킵니다.
  1. minor GC가 from space를 비워버립니다. 이 단계에서 from space에 남아있는 객체들은 가비지로 간주합니다.
  1. minor GC가 from space와 to space를 스왑하여, 모든 객체들은 from space에 존재하고, to space는 빈 공간이 됩니다.
 

To Old Space

  1. 위 절차가 반복되어 두번쨰 Minor GC에서 살아남은 active 표시된 객체들은 old space로 이동합니다. minor GC를 한 사이클만 살아남은 객체들은 new space의 to space로 이동되고, active로 표기되지 못한 객체들은 가비지로 간주되어 삭제됩니다.
  1. minor GC는 다시 한번 to space와 from space를 스왑하고, to space는 빈 공간이 되고, from space에 모든 객체들이 존재하게됩니다.
 
 
Stop the world GC
방식이지만 빨라서 괜찮다
 

Recommendations