当我在 valgrind 下使用 massif 选项启动我的应用程序时,我看到 52.6 MiB 的峰值使用量。
但是 htop 说这个过程占用了 875MB 的 RES 内存。
相同的行为具有堆跟踪。有谁知道为什么分析器不报告 800+MB 去了哪里?
Massif 默认只测量由malloc
和朋友管理的堆。它不会尝试跟踪通过其他方式映射的页面(例如使用mmap
)。
为了考虑所有页面,需要运行 massif with --pages-as-heap=yes
。
资料来源:Massif 手册。