목록 보기
자바스크립트 v8 엔진의 가비지 컬렉션 동작 방식
프론트엔드

자바스크립트 v8 엔진의 가비지 컬렉션 동작 방식

두줄요약

V8의 New·Old space 기반 세대별 가비지 컬렉션 구조를 설명했습니다. 마이너·메이저 GC와 Orinoco의 지연 완화 기법을 정리했습니다.

구조와 흐름

  • V8 힙의 New space·Old space 분리와 세대별 객체 관리
  • New space의 두 semi space 간 객체 대피와 생존 객체의 Old space 승격
  • Old space의 Pointer space·Data space 구분

선택 이유

  • 신규 객체의 짧은 생명주기를 전제로 한 Generational Hypothesis
  • New space의 빠른 마이너 GC와 대용량 Old space의 메이저 GC 분리

성능/운영 포인트

  • 마이너 GC의 객체 이동을 통한 메모리 단편화 완화
  • 메이저 GC의 Mark-Sweep-Compact와 tri-color 마킹
  • Parallel·Incremental·Concurrent·Idle-time GC를 통한 stop-the-world 시간 완화

주의할 점

  • 힙의 불필요한 객체 미해제로 인한 메모리 누수와 성능 저하
  • 참조 가능 여부를 기준으로 한 GC 대상 판단

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#JavaScript 주제를 이어서 읽기

자바스크립트 v8 엔진의 가비지 컬렉션 동작 방식

V8 엔진의 세대별 힙 구조와 마이너·메이저 가비지 컬렉션 흐름을 설명했습니다. Orinoco 기술로 stop-the-world 시간을 줄이는 방식을 정리했습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...