memory - 去内存分析

标签 memory go

这已经是我第二次注意到我的一个 Go 程序占用了大量内存(比我预期的多得多)而且我不明白为什么,所以我来了。 我决定使用 pprof 分析内存,top5 pprof 内存分析的结果如下:

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 的内存(这对于我正在做的事情、解析和索引日志来说是可以承受的)。但是,当我执行“top 命令”并查看我的程序使用的常驻内存时,程序占用的内存大约为 10GB 到 11GB,这与内存分析有很大的不同。

那么我在配置文件中看不到的那些 Gigs 内存在哪里? 为什么? 如何排除故障?

提前致谢

最佳答案

很可能额外的内存使用来自文件系统,尤其是。因为您可能正在扫描大量磁盘。

参见:http://www.linuxatemyram.com/

关于memory - 去内存分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40045816/

相关文章:

memory - 戈朗 : trouble with memory

c++ - 静态变量的地址值可以与堆分配地址匹配吗?

c - 内存分配详细信息

c++ - 保护应用程序的内存不被篡改

go - 通过 vendoring 修改 go 标准库 crypto/tls

mongodb - 如何使用mongodb/mongo-go-driver进行高效分页

python - 如何释放 pandas 数据帧而不是切片使用的内存?

performance - Hibernate 适合批处理吗?内存使用情况如何?

go - 如何在专用服务器上运行多个 Golang 应用程序?

arrays - 为什么堆栈溢出取决于Go中如何访问数组?