dolog
가비지 컬렉션 1 본문
우리가 만드는 모든 것은 메모리를 차지한다
더는 쓸모 없게 된 것들을 어떻게 처리할까?
가비지 컬렉션 기준
- JS는 도달 가능성(reachability) 라는 개념을 사용해 메모리 관리
- 도달 가능한 값 : 어떻게든 접근하거나 사용할 수 있는 값
- 도달 가능한 값은 메모리에서 삭제 되지 않는다
- 가비지 컬렉터(garbage collector)가 끊임 없이 동작하여 모든 객체 모니터링, 도달 가능 X 객체 삭제
- 고정 도달 가능 값(root)
/ 현재 함수의 지역 변수와 매개변수
/ 중첩 함수의 체인에 있는 함수에서 사용되는 변수와 매개변수
/ 전역 변수
/ etc.
- root가 참조하는 값 또는 체이닝으로 루트에서 참조할 수 있는 값 ➡️ 도달 가능한 값
ex) 전역 변수에 객체 저장 ➡️ 객체의 프로퍼티가 또 다른 객체 참조 ➡️ 참조하는 객체가 도달 가능한 값 ➡️ 그 외 이 객체가 참조하는 다른 모든 것들도 도달 가능한 값
간단한 예시
ex)
// 전역 변수 user엔 객체 참조 값이 저장
let user = {
name: “Kim”
};
user = null; // 참조가 사라진다, 즉 도달 가능 X 값으로 Kim이 메모리에서 삭제
참조 두개
ex) 참조를 user에서 admin으로 복사
let user = {
name: “Kim”
};
let admin = user;
// user를 null로 덮어씌우면?
user = null;
// user는 null, admin은 Kim이 그대로 남아있는다
// admin이라는 user의 프로퍼티가 담긴 새로운 객체가 생성되었기 때문
'JavaScript > 객체 : 기본' 카테고리의 다른 글
매서드와 this (0) | 2022.07.20 |
---|---|
가비지 컬렉션 2 (0) | 2022.07.20 |
참조에 의한 객체 복사 (0) | 2022.07.18 |
객체 2 (0) | 2022.07.17 |
객체 1 (0) | 2022.07.15 |