【发布时间】:2021-04-13 04:22:20
【问题描述】:
当我在 valgrind 下使用 massif 选项启动我的应用程序时,我看到 52.6 MiB 的峰值使用量。 但是 htop 说这个过程占用了 875MB 的 RES 内存。
同样的行为有 heaptrack。有谁知道为什么 profiler 不报告 800+MB 去了哪里?
【问题讨论】:
-
massif 只测量堆使用而不是映射内存(默认情况下)。你试过
--pages-as-heap=yes吗? -
@n.'pronouns'm。您可以将此作为答案提交。这就是我需要的。
-
尽管您的列标题以某种方式未对齐,但似乎显示 875M 虚拟其中 812M 是共享的。您想要将共享内存(例如映射的共享库)计为“已使用”吗?即使没有您的进程,该内存也可能已被使用,大约 63M 的差异看起来是正确的。
标签: c++ memory valgrind profiler massif