고루틴 메모리
Goroutine 정말 수백만개를 만들어도 문제 없을까?
Goroutine 정말 수백만개를 만들어도 문제 없을까?
2021.10.29Go 의 문서를 읽어보면 Goroutine 의 개수에 대해서 걱정하는 것은 섣부른 최적화 라고 나와 있을정도로 Goroutine은 가볍다고 나와 있다. 하지만 정말 수백 수천 만개의 고루틴 을 돌려도 메모리가 버틸수 있을 지 궁금했다. 이 예제는 Goroutine 이 가비지 컬렌셕되지 않는다는 사실과 런타임이 스스로 검사할수 있는 기능을 조합하여 고루틴 생성 전후에 할당된 메모리 양을 측정한다. package main import ( "fmt" "runtime" "sync" ) func main() { memConsumed := func() uint64 { runtime.GC() var s runtime.MemStats runtime.ReadMemStats(&s) return s.Sys } var c