시스템 프로그래밍은 가장 하위 레이어니까
최대한 오버헤드 없는게 좋을테니 gc 안쓰는건 알겠고
이외에도 고성능 게임이나 mmo rpg server등에서도
cpp 써야하는 이유로 가비지 컬렉션 이야기도 많던데
웹뗄감이라 그런지 gc 오버헤드가 어느정도인지 궁금함
full gc 이야기 하는경우도 봤는데 일반적으로 full gc는
대부분 메모리 누수같은 특이케이스가 대다수던데
자바 릴리즈노트나 golang 보면 gc 기술도 계속 발전하는거 같고
- dc official App
언어마다 그리고 짜는 방법마다 너무 편차가 클 듯 싶은데
동접차 3000명 서버가 있는데 GC 컴팩트한다고 갑자기 드륵드륵 대면서 5초 정도 사람 튕겨나간다고 생각해 보셈... ㅋㅋㅋ 그리고 그게 서버 1개일 때의 경우고 여러개의 서버가 서로 동기화되어 있는데 1개 시스템이 그렇게 정지되어 버려서 다른 시스템도 다 같이 선다면?
언제 어느시점에 얼마나 딜레이될지 모르는게 gc
스루풋보다 레이턴시가 문제지. 레이턴시 컨트롤이 RAII보다 어렵다. GC가 리얼타임이니 좋으니 나쁘니 개지랄 해봐야 블랙박스에다가 확률에 기대야 하는거라 노답임.
레인턴시 줄인다고 컬렉션 타이밍 쪼개면 오버헤드 늘어나서 스루풋은 바닥으로 가고. 그냥 no gc로 가면 답없는 튜닝 따위 안해도 제로 레이턴시로 편하게 할 수 있는데 gc로 갈이유가 없음
하지만 메이저 언어들 다수는 GC 쓰잖아 자바 파이썬 JS C#만해도 점유율 ㅗㅜㅑ
메이저 언어가 갑자기 왜나오냐
언제부터 레이턴시가 중요한 부분에서 GC 언어가 메이저가 됐지? 레이턴시에 목숨거는데는 GC는 마이너 중에 마이너임. 리얼타임 자바도 어떻게 한몫 끼고 싶어서 열심히 기웃거리는데 결과마다 똥망해서 나가리고, 닷넷도 똑같고. 유일하게 결과 내고 있는 GC기반은 얼랑뿐인데, 처리량 포기하고 완전 분산하는 컨셉이라 얼마나 흥할지는 모르겠다.
성능도 여러가지 관점이 있으니께 난 딱히 그렇게 심각한 문제로 보이진 않음 - dc App