我有一些内存问题,我有一个进程增加了它的驻留内存太多,我试图确定是否存在内存泄漏。
刚打开进程,内存占用151 Mb
VIRT RES SHR 792m 151m 14m
几天后,该过程过多地增加了常驻内存:
VIRT RES SHR 784m 480m 9204
我生成了两个转储,一个打开进程,几天后另一个,我生成了这样的转储:
jmap -dump:file=file.bin PID
第一个转储占用 23 Mb,第二个转储占用 244 Mb。
如果我使用内存分析器工具打开两个转储,我发现两个转储占用几乎相同的 ~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
内核页面大小:4 kB
MMUPage 大小:4 kB
锁定:0 kB
但我不明白这是什么意思。