메모리 프로그램을 많이 사용하는 Go 프로그램 중 하나 (이미 예상 한 것보다 훨씬 많음)가 눈에 띄며 왜 그런지 이해하지 못하는 것은 두 번째입니다. 내가 pprof으로 메모리 및 메모리 프로파일 링 pprof TOP5의 결과를 프로파일로 결정 같은 것입니다 :Go 메모리 프로파일 링
1140.28MB of 1169.97MB total (97.46%)
Dropped 61 nodes (cum <= 5.85MB)
Showing top 5 nodes out of 15 (cum >= 33.89MB)
내 문제는 다음과 같다. 프로파일에서 우리는이 프로그램이 약 1.2GB의 메모리를 소비했다는 것을 알았습니다. (이것은 내가 수행하고있는 작업에 적합하고 로그 분석 및 색인 생성에 적당합니다.) 그러나 "톱 커맨드"를 수행하고 프로그램에서 사용하는 상주 메모리를 살펴보면 메모리 프로파일 링과 상당한 차이가있는 약 10GB에서 11GB의 메모리가 프로그램에서 사용됩니다.
프로필에 표시되지 않는 메모리는 어디에 있습니까? 그리고 왜? 문제를 해결하는 방법? 그것은 여분의 메모리 사용량이 ESP, 파일 시스템에서입니다 가능성이 높습니다
? (또한 http/pprof 훅을 사용하고 있다면'/ debug/pprof/heap'으로 표시됩니다) – JimB