我有一些内存问题,我有一个过程会增加其驻留内存太多,我试图确定是否有内存泄漏。
刚打开过程,内存占用151 Mb
VIRT RES SHR 792米151米14米
几天之后,这个过程会增加驻留内存:
VIRT RES SHR 784m 480m 9204
我已经生成了两个转储,一个打开了进程,另一个打开了几天,我生成了这样的转储:
jmap -dump:file = file.bin PID
第一次转储占用23 Mb,第二次转储占用244 Mb。
如果我使用Memory Analyzer Tool打开两个转储,我发现两个转储占用的几乎相同~7Mb:第一个为6.6 Mb,第二个为7.4 Mb。
¿任何人都可以解释一下这是如何实现的,如何确定是否存在内存泄漏? ¿我怎样才能证明这种记忆增量?
非常感谢!!
作为一个额外的信息,smaps显示了一个似乎有罪的奇怪条目:
作为附加信息:smaps节目 487a0000-5fbcd000 rwxp 00000000 00:00 0
大小:381108 kB
Rss:381108 kB
Pss:10420 kB
Shared_Clean:0 kB
Shared_Dirty:0 kB
Private_Clean:0 kB
Private_Dirty:381108 kB
参考文献:374832 kB
匿名:381108 kB
AnonHugePages:370688 kB
交换:0 kB
KernelPageSize:4 kB
MMUPageSize:4 kB
锁定:0 kB
但我无法理解这意味着什么。