차례:
정의-가비지 콜렉션 (GC)은 무엇을 의미합니까?
가비지 콜렉션 (GC)은 자동 메모리 관리 및 힙 할당에 대한 동적 접근 방식으로 사용 불능 메모리 블록을 처리 및 식별하고 재사용을 위해 스토리지를 재 할당합니다. 가비지 수집의 주요 목적은 메모리 누수를 줄이는 것입니다.
GC 구현에는 다음과 같은 세 가지 주요 접근 방식이 필요합니다.
- Mark-and-Sweep-메모리가 부족할 때 GC는 액세스 가능한 모든 메모리를 찾은 다음 사용 가능한 메모리를 회수합니다.
- 참조 횟수-할당 된 개체에는 참조 번호의 참조 횟수가 포함됩니다. 메모리 카운트가 0이면, 객체는 가비지 (garbage)이고 파괴된다. 해제 된 메모리는 메모리 힙으로 돌아갑니다.
- 사본 콜렉션-두 개의 메모리 파티션이 있습니다. 첫 번째 파티션이 가득 찬 경우 GC는 액세스 가능한 모든 데이터 구조를 찾아 두 번째 파티션에 복사하여 GC 프로세스 후 메모리를 압축하고 연속 사용 가능한 메모리를 허용합니다.
내장 된 GC (예 : Java, Lisp, C # 및 .Net) 자체 관리 메모리 누수가있는 일부 프로그래밍 언어 및 플랫폼으로보다 효율적인 프로그래밍이 가능합니다.
Techopedia에서 가비지 콜렉션 (GC) 설명
가비지 콜렉션의 자동 힙 할당에 대한 동적 접근 방식은 발견되지 않은 경우 실제 프로그램 결함을 야기하는 일반적이고 비용이 많이 드는 오류를 해결합니다.
식별 및 복구가 어렵 기 때문에 할당 오류가 발생합니다. 따라서 가비지 콜렉션은 많은 사람들이 수동 힙 할당 관리를 줄이면 프로그래머의 작업을보다 쉽게 해주는 필수 언어 기능으로 간주됩니다. 그러나 GC는 완벽하지 않으며 다음과 같은 단점을 고려해야합니다.
- 메모리를 비울 때 GC는 컴퓨팅 리소스를 소비합니다.
- GC 프로세스를 예측할 수 없으므로 분산 된 세션 지연이 발생합니다.
- 사용하지 않는 객체 참조를 수동으로 폐기하지 않으면 GC로 인해 논리적 메모리 누수가 발생합니다.
- GC는 최신 데스크톱 컴퓨터의 가상 메모리 환경 내에서 언제 처리해야하는지 항상 알지 못합니다.
- GC 프로세스는 캐시 및 가상 메모리 시스템과 제대로 상호 작용하지 않으므로 성능 조정이 어려워집니다.