Published 2022. 4. 25. 21:25

 

프로그램에서 더 이상 사용하지 않는 메모리를 자동을 정리하는거임
메모리의 누수를 줄이기위한방법

 

let x; => 1101010 메모리저장
let x=10; => 위에꺼 메모리없애고 110101 새로저장
let x=20; => 똑같이 새로저장

저장했던 메모리들은 쌓이는거고 첫번째꺼랑 두번째꺼는 어디쓰이지 못하고 가비지가됌
이런 불필요한 메모리들에 저장되어있는 데이터를 제거하는걸 가비지컬렉션

 

가비지컬렉션의 방법들


트레이싱:
한 객체에 flag를 두고, 가비지 컬렉션 사이클마다 flag에 표시 후 삭제하는
 mark and sweep 방법입니다.
객체에 in-use flag를 두고, 
사이클마다 메모리 관리자가 모든 객체를 추적해서 사용중인지 아닌지를
 표시(mark)합니다. 그 후 표시되지 않은 객체를 삭제(sweep)하는 단계를 
통해 메모리를 해제합니다.
레퍼런스 카운팅:
 한 객체를 참조하는 변수의 수를 추적하는 방법입니다.
객체를 참조하는 변수는 처음에는 특정 메모리에 대해 레퍼런스가 하나뿐 이지만, 변수의 레퍼런스가 복사될 때마다 레퍼런스 카운트가 늘어납니다. 객체를 참조하고 있던 변수의 값이 바뀌거나, 변수 스코프를 벗어나면 레퍼런스 카운트는 줄어듭니다. 레퍼런스 카운트가 0이 되면, 그 객체와 관련한 메모리는 비울 수 있습니다. 레퍼런스 카운트가 0이 된다는 말은 아무도 그 객체에 대한 레퍼런스를 가지고 있지 않다는 말과 같습니다.

 

'컴퓨터 공학' 카테고리의 다른 글

CPU 스케쥴링이란 무엇이냐?  (0) 2022.04.25
캐시가 무엇이냐?  (0) 2022.04.25
메모리란?  (0) 2022.04.25
[운영체제]운영체제란 무엇인가?  (0) 2022.04.25
그래픽  (0) 2022.04.25
복사했습니다!