본문 바로가기

garbage collection

(2)
[Lecture 16] Automatic Memory Management / 가비지 컬렉션 #Automatic Memory Management 명시적(explicit) 메모리 관리(예: malloc() 및 free()를 통한)는 오류가 발생하기 쉽다. 이에 반해, 대부분의 현대 언어들은 자동 메모리 관리또는 가비지 컬렉션이라고도 불리는 "암묵적 메모리 관리" 형태를 제공한다 명시적 메모리 관리는 복잡하며, 다양한 오류가 발생할 수 있다: 메모리를 너무 일찍 해제하면 use-after-free 오류가 발생할 수 있다. 메모리 해제를 너무 늦게 하거나 전혀 하지 않으면, 메모리 누수(leak)의 위험이 있다. 자동 메모리 관리 시스템은 객체의 소유권과 수명을 식별하는 원칙적인 설계를 필요로 한다. 이는 API 설계를 복잡하게 만들 수 있으나, 프로그래밍에서 발생할 수 있는 여러 문제들(메모리 누수..
[Lecture 17] Automatic Memory Management, Performance # Performence of Automatic Memory Management 실제 garbage collector들은 그들이 만드는 절충안에 매우 다양하다. 개발자들은 수십 년 동안 그것들을 설계하는 데 소비되어 왔다. 예를 들어, 자바 10은 4개의 다른 컬렉터와 함께 사용된다. ZGC는 2018년에 추가된 5번째 컬렉터이다 프로그램 처리량, 메모리 오버헤드, GC 처리량, 확장성 등 많은 특성이 다르다 garbage collector의 정책을 적절히 조정하고 성능에 미치는 영향을 이해하려면 작업 부하를 잘 이해해야 한다 #Modeling the Cost of GC Compacting Collectors: Garbage collector는 객체 그래프, 특히 다른 객체에 대한 포인터가 저장되는 위치..