opt.lg_prof_interval(ssize_t)r- [--enable-prof] 内存配置文件转储之间的平均间隔(以2为底的日志),以分配活动的字节数为单位。转储之间的实际间隔可能是零星的,因为使用分散的分配计数器来避免同步瓶颈。配置文件将转储到根据模式... i.heap命名的文件中,该模式由opt.prof_prefix选项控制。默认情况下,禁用间隔触发的配置文件转储(编码为-1)。
医生说。
我的选择是export MALLOC_CONF=prof:true,lg_prof_interval:30,lg_prof_sample:17
(每1GB采样一个堆转储)
我困惑的是转储是应用程序启动到现在之间的完整转储,或者只是最后一次转储之间的完整转储。
我检查了转储的大小,发现它很小。
可能是答案2?
我找到了一些个人资料文章,但没有提及。
为此,我如何才能看到内存减少?(base
是否有效?我不这样认为...)
答案 0 :(得分:1)
简单的答案是:(1)-字节计数器从应用程序开始。
长答案:这不是必需的“应用程序启动”事件,也可以是从应用程序内部调用mallctl(“ prof.reset”)。
您可以检查此线程(很旧)以进行澄清(阅读所有消息,而不仅仅是我引用的消息):http://jemalloc.net/mailman/jemalloc-discuss/2015-November/001205.html
“为此,我怎么能看到内存减少?(基本工作吗?我不这么认为...)”
您应该使用--base选项(在您的情况下为--base dump3)看到内存减少。 jeprof报告中将显示负数。