ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JavaScript] Garbage Collection(쓰레기 수집가)
    JavaScript 개념 2022. 6. 22. 11:55

    Garbage Collection(쓰레기 수집가)

    가비지 컬렉터(GC)는 JavaScript의 기능으로, 쓸모 없어진 객체가 차지하는 메모리를
    JavaScript가 자동으로 메모리에서 지워주는 기능
    • JavaScript, Python, Java는 가비지 컬렉터(GC)가 자동적으로 메모리 관리를 해준다
    • C,C++등 수동으로 메모리 관리하는 언어는 기본적으로 가비지컬렉터(GC)가 없다

    장점

    • 메모리 관리를 완벽하게 할 필요는 없다

    단점

    • 언제 가비지 컬렉션이 진행이될지 모른다
      • 객체가 쓸모 없어지는 시점이 정확히 메모리가 해제되지 않기 때문에 최적의 메모리 관리가 되지 않는다
    • 가비지 컬렉터 동작하는 시간이 든다
      • 어떤 객체가 쓸모 없는지 판단하는 시간이 소요된다.

    let customer ={
    	name:"홍길동",
        age:20
    }
    
    let person = customer

    위 처럼 오브젝트를 변수(customer)에 할당하는 순간 JavaScript는 Memory Heap이라는 곳에 오브젝트를 만들고,

    변수(customer)는 오브젝트가 저장되어있는 메모리 주소를 가르키게 됩니다.

    그리고 메모리주소가 담겨있는 변수(customer)를 person에 할당을 하였으니 person 역시 customer과 같은 주소를 가르키게 됩니다.  즉) person === customer

     

    person = null
    customer = null

    메모리 주소가 할당된 person과 customer에 null을 재할당 하게 되면  person과 null은 null이라는 값을 가지게 됩니다

    그러면 처음 변수에 할당햇던 오브젝트는 아무것도 연결되어있지 않은 상태가 됩니다.

    그때 가비지 컬렉터(Garbage Collection)가 이 Memory Heap에 저장되어있는 object는 쓸모가 없다고 판단하여 해당 object를 지우게 됩니다.

     

    이게 가비지 컬렉터(Garbage Collection)가 동작하는 방식입니다.

Designed by Tistory.