jemalloc中的lg_prof_interval是否意味着在两个时间点之间转储堆?

时间:2018-09-23 12:17:45

标签: jemalloc

  

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采样一个堆转储)

我困惑的是转储是应用程序启动到现在之间的完整转储,或者只是最后一次转储之间的完整转储。
enter image description here

我检查了转储的大小,发现它很小。
可能是答案2?
我找到了一些个人资料文章,但没有提及。

为此,我如何才能看到内存减少?(base是否有效?我不这样认为...)

1 个答案:

答案 0 :(得分:1)

简单的答案是:(1)-字节计数器从应用程序开始。

长答案:这不是必需的“应用程序启动”事件,也可以是从应用程序内部调用mallctl(“ prof.reset”)。

您可以检查此线程(很旧)以进行澄清(阅读所有消息,而不仅仅是我引用的消息):http://jemalloc.net/mailman/jemalloc-discuss/2015-November/001205.html

“为此,我怎么能看到内存减少?(基本工作吗?我不这么认为...)”

您应该使用--base选项(在您的情况下为--base dump3)看到内存减少。 jeprof报告中将显示负数。