V8 엔진의 가비지 컬렉션

기본적으로 브라우저가 메모리를 자동으로 정리해주고 있지만, 개발자들이 메모리 최적화에 신경쓰지 않으면 가비지 컬렉션이 자주 실행되어 사용자 경험이 저하될 수 있습니다. 브라우저의 딥한 내부 동작을 알아두면 언젠가 면접에서 써먹을 수도 있기 때문에 개발자분들은 한 번 훑고 지나가시면 좋습니다.

  • 가비지 컬렉션의 핵심은 '죽은' 객체로부터 메모리를 확보하는 것이다.

  • 자바스크립트의 경우 단일 스레드이고 스레드 간 동기화 메커니즘이 없기 때문에 전체 객체 추적을 정기적으로 수행하면 지연과 성능 저하가 발생할 가능성이 높다.

  • V8 팀은 이러한 한계를 극복하기 위해 '세대' 개념을 도입했다.

  • 젊은 세대: 새로 할당된 객체들은 젊은 세대로 구분되며, 마이너 GC를 통해 수행된다.

  • 노년 세대: 오래된 객체들은 노년 세대로 구분되며, 메이저 GC를 통해 수행된다.

  • 메이저 GC는 보통 마이너 GC보다 더 많은 시간이 소요된다. 심하면 성능 저하가 일어나기도 한다. 개발자들이 메모리 최적화를 잘하면 메이저 GC 발생 빈도를 줄일 수 있다.

  • 브라우저는 웹 페이지가 비활성화됬을 때 몰래(?) 메이저 GC를 수행하는 식으로 최적화를 해두었다. V8에서는 이 작업을 하는 친구를 메모리 리듀서라고 부른다.


https://www.harimkim.com/articles/2.%20Area/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C%20%EA%B0%9C%EB%B0%9C/Web%20%EC%84%B1%EB%8A%A5%20%EC%B5%9C%EC%A0%81%ED%99%94/V8%20%EC%97%94%EC%A7%84%EC%9D%98%20%EA%B0%80%EB%B9%84%EC%A7%80%20%EC%BB%AC%EB%A0%89%EC%85%98

V8 엔진의 가비지 컬렉션

Harimkim

V8 엔진의 가비지 컬렉션

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 4월 10일 오전 6:36

 • 

저장 30조회 2,365

댓글 0

    함께 읽은 게시물

    🌎 해외에서 일하면 뭐가 좋을까요❓

    외국어를 사용해서? 돈을 더 많이 벌어서? 새로운 기회가 많아서? 글로벌 경력을 쌓을 수 있어서?

    ... 더 보기

    Longest Common Subsequence 자바스크립트 풀이

    ... 더 보기

    Longest Common Subsequence | 알고달레

    알고달레

    Longest Common Subsequence | 알고달레

    iOS 19가 아니라 이제 iOS 26?

    ... 더 보기

    No iOS 19: Apple Going Straight to iOS 26

    MacRumors

    No iOS 19: Apple Going Straight to iOS 26

    < 음악 산업의 미래는 음반이 아니라 '굿즈'다 >

    1. 굿즈 사업의 미래는 밝아 보인다.

    ... 더 보기

    [광고] 다음 직무 채용 예정입니다.


    - 프러덕트/사업 기획 1인

    - 프러덕트 디자인 1인

    ... 더 보기

    < 서비스를 중독성 있게 만드는 결정적 원리 >

    1. 진통제이면서 비타민이어야 한다.

    ... 더 보기