프로그래밍 언어론 3-2-4강. 쓰레기 수집(Garbage Collection)

[프로그래밍 언어론]

2019. 10. 26. 14:29

 

힙에서 객체 할당은 프로그램의 특정한 연산에 의해 작동한다. (객체의 인스턴화, 리스트 끝에 append, 짧은 문자열에 긴 value 배치와 같은..)
객체의 할당 해제는 대부분에 언어에서는 자동으로 할당 해제가 되지만, 몇몇 특정 언어(C, C++등)에서는 할당 해제에 명시가 필요하다.

 

 

 

[쓰레기 수집(Garbage Collection)]

: 힙에서 객체 할당후 반환된 빈 블록들 외부단편화 방지하기 위해 한곳으로 몰아서 결합해 큰 공간으로 재배치해준다.

 

 

 

[명시적인 할당 해제(Explicit deallocation) 장단점]

  • 장점 : 간단한 구현, 빠른 실행
  • 단점 : 수동할당해제로 인한 에러, 비용 증가, 복잡, 메모리 부족 및 허상 포인터 문제 발생

 

 

 

[쓰레기 수집(비명시적 할당 해제) 장단점]

  • 장점 : 수동할당해제로 인한 에러X, 알고리즘 발전으로 오버헤드 발생거의 없어 오히려 이득, 복잡해지는 프로그램에서 자동작업
  • 단점 : 오버헤드 발생 시간 아무리 줄어도 오버헤드 존재.