我有一个用 go 编写的服务,它在运行时需要 6-7G 内存(顶部是 RES)。所以我使用 pprof 工具试图找出问题所在。
go tool pprof --pdf http://<service>/debug/pprof/heap > heap_prof.pdf
但是结果中只有大约 1-2G 内存(pdf 中的“总 MB”)。剩下的在哪里?
我已经尝试使用 GOGC=off 来分析我的服务,结果“总 MB”与顶部的“RES”完全相同。似乎内存已被 GC,但尚未返回内核将不会被分析。
任何的想法?
PS,我在 1.0.3 和 1.1rc3 都测试过。