가비지 컬렉션

Siwoo Pak·2021년 9월 12일
0

컴퓨터공학

목록 보기
6/8

가비지 컬렉션

  • 프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 정리하는 것

  • java, c#, js 등이 있음

  • 방법

    • 트레이싱: 한 객체에 flag를 두고, 가비지 컬렉션 사이클마다 flag에 표시 후 삭제하는 mark and sweep 방법.

    • 객체에 in-use flag를 두고, 사이클마다 메모리 관리자가 모든 객체를 추적해서 사용중인지 아닌지를 표시(mark)후 표시되지 않은 객체를 삭제(sweep)하는 단계를 통해 메모리를 해제.

    • 레퍼런스 카운팅: 한 객체를 참조하는 변수의 수를 추적하는 방법.

    • 객체를 참조하는 변수는 처음에는 특정 메모리에 대해 레퍼런스가 하나뿐 이지만, 변수의 레퍼런스가 복사될 때마다 레퍼런스 카운트가 늘어나고, 객체를 참조하고 있던 변수의 값의 변경, 변수 스코프를 벗어나면 카운트가 줄며, 카운터가 0이 되면 그 객체와 관련된 메모리는 해제할 수 있다.

크롬 브라우저 및 node.js의 v8 엔진의 가비지 컬렉션은
사이트를 참고하세요.

profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글