힙에서 객체 할당은 프로그램의 특정한 연산에 의해 작동한다. (객체의 인스턴화, 리스트 끝에 append, 짧은 문자열에 긴 value 배치와 같은..)
객체의 할당 해제는 대부분에 언어에서는 자동으로 할당 해제가 되지만, 몇몇 특정 언어(C, C++등)에서는 할당 해제에 명시가 필요하다.
[쓰레기 수집(Garbage Collection)]
: 힙에서 객체 할당후 반환된 빈 블록들 외부단편화 방지하기 위해 한곳으로 몰아서 결합해 큰 공간으로 재배치해준다.
[명시적인 할당 해제(Explicit deallocation) 장단점]
- 장점 : 간단한 구현, 빠른 실행
- 단점 : 수동할당해제로 인한 에러, 비용 증가, 복잡, 메모리 부족 및 허상 포인터 문제 발생
[쓰레기 수집(비명시적 할당 해제) 장단점]
- 장점 : 수동할당해제로 인한 에러X, 알고리즘 발전으로 오버헤드 발생거의 없어 오히려 이득, 복잡해지는 프로그램에서 자동작업
- 단점 : 오버헤드 발생 시간 아무리 줄어도 오버헤드 존재.
'[프로그래밍 언어론]' 카테고리의 다른 글
프로그래밍 언어론 3-3-1강. 정적 스코프(Static Scope) (0) | 2019.10.26 |
---|---|
프로그래밍 언어론 3-3강. 스코프 규칙(Scope rule) (0) | 2019.10.26 |
프로그래밍 언어론 3-2-3강. 메모리할당- 힙기반 할당(Heap-Based Allocation) (0) | 2019.10.26 |
프로그래밍 언어론 3-2-2강. 메모리할당 - 스택기반 할당(Stack-based allocation) (0) | 2019.10.26 |
프로그래밍 언어론 3-2-1강. 메모리 관리 - 정적 할당(Static Allocation) (0) | 2019.10.26 |