대부분의 개인용 운영체제는
메모리 할당후에 메모리 할당이 성공했는지 혹은 할당된 메모리가 연속적으로 무결한지 검사하지 않는다
경험적으로 10기가 이상 메모리를 할당하고 체에 값 넣다보면 항상 세그폴이 터짐
이걸해결하기 위해서 여러가지를 해봤는데
구글이 만든 tcmalloc 같은 고성능? 라이브러리를 써봐도 답이없고
운영체제 설계 시점부터
그냥 답이없으니까 언제든 프로그램은 뒈질수 있다는걸 염두하고 코딩하자..
머신마다 경험적으로 안전한 범위에서 할당하고 논리적으로 관리하는 수밖에 없음
아 물론 리눅스도 저렇게 설계되었음
윈도 이야기 아님
요약 : 48 스레드 128Gb 머신에서 10기가이상 할당 하면 거의 반이상 뒈짐 gc 없는 네이티브에서 계속 저러고 돌리면 하루이틀에 한번씩 프로세스 뒈짐 ㅠ
스케줄러와 워커가 필요한 시점입니다.
으잉 malloc하면 반환값으로 알려주지 않나여
malloc 리턴속도 생각해보면 절대 메모리에 문제가 있는지 없는지 검사안하고 걍 던져준다는걸 알수있을꺼에영
메인프레임용 전용 os 들이 어떤지는 모르겠네염
ㄷㄷ 그럼 엠얼록이 아토믹 오퍼레이션이 아니었던거임?
tcmalloc < 넘사벽 < tbbmalloc
윈도이야기가 아니네