[JS] 가비지 컬렉터 (Garbage Collector)

전상욱·2021년 5월 29일
3

JavaScript

목록 보기
15/17
post-thumbnail

가비지 컬렉터란? (Garbage Collector)

  • 가비지 컬렉터는 메모리 관리 기법 중에 하나이로 'GC'라고 한다.
  • 시스템에서 더이상 사용하지 않는 메모리 블록을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 시스템 (=가비지 컬렉션 Garbage Collection)을 수행하는 부분

JavaScript의 언어는 GC를 기본적으로 제공한다.
이 가비지 컬렉션 기능을 채택한 언어의 경우, 가비지 컬렉션에서 제공하는 할당과 해제를 이용하여 자동으로 프로그램이 실행될때 생기는 useless한 메모리들을 알아서 수집하고 관리해준다.

가비지 컬렉터의 원리

1. 메모리 할당

프로그램을 실행하면, 메모리를 관리하는 OS에 프로그램의 실행에 필요한 메모리를 요청하게 된다.
이때, 메모리를 어디에 저장할지 주소를 할당하는데 이 주소를 'Offset주소'라고 한다.

2. 사용중인 메모리 인식

3. 사용하지 않는 메모리 (=가비지) 인식

프로그램이 돌아가면 필연적으로 가비지가 발생하게 된다.
기존에 가리키고 있던 메모리가 새롭게 선언되거나 형태가 변환되어 다른 곳을 가리키게 되면 Offset주소를 잃어버려 정리되지 않은 메모리가 생기기 때문이다.

4. 가비지 메모리 해제

'정리되지 않은 메모리'를 다른 용도로 사용할 수 있도록 메모리 해제를 시키는 것이 가비지 컬렉터의 목적이다.

profile
더 높은 곳으로

0개의 댓글