我正在尝试解决一些内存泄漏,并且我正在使用 jemalloc 转储堆配置文件:
MALLOC_CONF=prof:true,lg_prof_interval:30,lg_prof_sample:17
很有魅力,但我不知道我在看什么:)
jemaloc堆分析是否显示所有(采样的)分配,或者只是那些在转储时没有被 free()-ed 的分配?或者换一种说法:它是分配配置文件,还是“实时”块配置文件?
我正在尝试解决一些内存泄漏,并且我正在使用 jemalloc 转储堆配置文件:
MALLOC_CONF=prof:true,lg_prof_interval:30,lg_prof_sample:17
很有魅力,但我不知道我在看什么:)
jemaloc堆分析是否显示所有(采样的)分配,或者只是那些在转储时没有被 free()-ed 的分配?或者换一种说法:它是分配配置文件,还是“实时”块配置文件?
我的理解是默认情况下,jeprof 显示在写入转储时“实时”的分配。但是,您可以更改它。
prof_accum
如果要记录所有分配,请参阅 jeprofile选项:http: //jemalloc.net/jemalloc.3.html#opt.prof_accum
您可能还需要--alloc_space
jeprof 标志来显示分配的字节而不是正在使用的字节:https ://github.com/jemalloc/jemalloc/blob/dev/bin/jeprof.in#L208