TIL. 가비지 컬렉션GC

chloe·2021년 3월 8일
0

TIL

목록 보기
57/81
post-thumbnail
post-custom-banner

메모리 생명주기

1. 메모리 할당
프로그램이 사용할 수 있게 운영체제가 메모리를 할당한다
=> 저 수준의 언어는 이를 개발자가 명시적으로 처리해준다.
=> 고 수준의 언어는 개발자가 이를 신경쓰지 않아도 된다.

변수와 함수를 선언하고 함수 표현식을 이용하는 것 모두 메모리를 할당하는 과정

2. 메모리 사용
할당된 메모리를 실제로 프로그램이 사용하는 단계이다
=> 개발자가 필요에 따라 읽기와 쓰기 작업을 진행한다.

3. 메모리 해제
프로그램에서 필요하지 않은 메모리 전체를 되돌려 주어 다시 사용하게 만드는 단계
=> 메모리 할당 작업과 마찬가지로 저수준은 이를 명시한다.

가비지 컬렉션

가비지 컬렉션이란 사용이 완료된 메모리를 정리하는 것이다.
고수준의 언어에서는 대부분 가비지 컬렉터라는 내장된 소프트웨어가 진행한다.
이것의 역할은 메모리 할당을 추적하고 언제 할당된 메모리가 더이상 사용하지 않는지 파악해서 자동으로 반환하는 것이다.
가비지 컬렉션 알고리즘의 핵심 개념은 참조이다.
A라는 메모리를 통해 B라는 메모리에 접근할 수 있다면 B는 A에 참조된다
참조가 하나도 없는 경우 가비지 컬렉션의 대상으로 간주한다.

가비지 컬렉션 단점

  1. 매우 큰 규모의 메모리 할당이 발생한다.
  2. 필요한 메모리도 수거하고 재할당하는 일이 발생하기도 한다.
  3. 요소들의 대부분은 닿을 수 없음의 상태로 표시된다 (필요없는 메모리를 소모함)

참고:https://moonscode.tistory.com/11

profile
Front-end Developer 👩🏻‍💻
post-custom-banner

0개의 댓글