首页 > 解决方案 > go tool pprof -inuse_space 比 linux top 显示小很多

问题描述

我的程序在后台运行。我使用 linux top 命令,它显示16g内存。但是当我想使用 gopprof -inuse_space检查点时,我只给出200M. 其他的记忆去哪儿了?

标签: goheap-memoryprofilepprof

解决方案


一般来说,os中使用的内存(顶部VIRT所示)比pprof大。一个原因是当堆大小 > ($GOGC% + 1) * (可达节点大小) 时会发生 gc:https ://blog.golang.org/go15gc 。默认情况下,$GOGC 为 100,这意味着内存大小将是 pprof 显示的堆大小的两倍。但你似乎不在这种情况下。


推荐阅读