gpt4 book ai didi

c - LIBUMEM 说没有内存泄漏,但 Solaris 上的 PRSTAT 显示泄漏?

转载 作者:行者123 更新时间:2023-12-04 06:06:31 26 4
gpt4 key购买 nike

我有一个应用程序,我一直在尝试“无内存泄漏”,我已经使用 Totalview 的 MemoryScape 在 Linux 上进行了可靠的测试,但没有发现泄漏。我已将该应用程序移植到 Solaris (SPARC) 并且我正在尝试查找泄漏...

我在 Solaris 上使用过“LIBUMEM”,在我看来它似乎也没有泄漏......

这是我的启动命令:

LD_PRELOAD=libumem.so UMEM_DEBUG=audit ./link_outbound config.ini

然后我立即检查了 Solaris 上的 PRSTAT 以查看启动内存使用情况:
PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
9471 root 44M 25M sleep 59 0 0:00:00 1.1% link_outbou/3

然后我开始向应用程序发送数千条消息……随着时间的推移,PRSTAT 增长了……
PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
9471 root 48M 29M sleep 59 0 0:00:36 3.5% link_outbou/3

就在我最终停止它之前:
PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP       
9471 root 48M 48M sleep 59 0 0:01:05 5.3% link_outbou/3

现在有趣的部分是当我在这个应用程序上使用 LIBUMEM 时,它显示 48 MB 内存,如下所示:
pgrep link
9471
# gcore 9471
gcore: core.9471 dumped
# mdb core.9471
Loading modules: [ libumem.so.1 libc.so.1 ld.so.1 ]
> ::findleaks
BYTES LEAKED VMEM_SEG CALLER
131072 7 ffffffff79f00000 MMAP
57344 1 ffffffff7d672000 MMAP
24576 1 ffffffff7acf0000 MMAP
458752 1 ffffffff7ac80000 MMAP
24576 1 ffffffff7a320000 MMAP
131072 1 ffffffff7a300000 MMAP
24576 1 ffffffff79f20000 MMAP
------------------------------------------------------------------------
Total 7 oversized leaks, 851968 bytes

CACHE LEAKED BUFCTL CALLER
----------------------------------------------------------------------
Total 0 buffers, 0 bytes
>

如果我通过应用程序发送 10 条消息或 10000 条消息,“7 次过大泄漏,851968 字节”永远不会改变……它始终是“7 次过大泄漏,851968 字节”。这是否意味着应用程序没有根据“libumem”泄漏?

令人沮丧的是,在 Linux 上,内存保持不变,从不改变……但在 Solaris 上,我看到了这种缓慢但稳定的增长。

知道这是什么意思吗?我是否正确使用 libumem?什么可能导致 PRSTAT 在此处显示内存增长?

对此的任何帮助将不胜感激....感谢一百万。

最佳答案

如果SIZE柱子没有增长,你没有泄漏。
RSS (常驻集大小)是您正在使用的内存量,该值随时间变化是正常的。如果您泄漏,SIZE会随着时间的推移而增长(RSS 可以保持不变,甚至缩小)。

关于c - LIBUMEM 说没有内存泄漏,但 Solaris 上的 PRSTAT 显示泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8287649/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com