Concurrent Mark & Sweep(이하 CMS라 함) 컬렉터
GC Compaction 도입하지 않은 이유
Generational GC 도입하지 않은 이유
세대별 GC에서는 write barrier 를 사용해서 세대 간 포인터를 기록해야 함
컴파일러의 escape 분석 성능이 우수하고 필요 시 heap에 할당되지 않도록 프로그래머가 제어할 수 있기 때문에, 세대별 가설에서 나오는 수명이 짧은 객체는 heap이 아닌 stack에 할당되기 때문에 세대별 GC로 인한 성능향상이 적다
앞으로 도입될 가능성은 있다
Go 언어의 GC에 대해 - LINE ENGINEERING
안녕하세요, LINE Ads Platform 개발을 담당하고 있는 Okada(@ocadaruma)입니다. 이번 포스팅에서는 개인적으로 쭉 관심있었던 Go 언어의 가비지 컬렉션(Garbage Collection, GC)에 대해 조사한 내용을 소개하겠습니다. Go 언어 Go 언어는 Google에서 개발한 시스템 프로그래밍 언어입니다. Channel을 통해 동시성(concurrency)을 지원하고 GC를 제공한다는 점이 특징입니다. Google을 비롯한 많은 기업에서 사용하고 있으며, LINE에서도 Go로 개발하는 도구나 서비스가 많이 있습니다.
https://engineering.linecorp.com/ko/blog/go-gc/

