我有一个应用程序,其内存随着我运行的测试用例而增加.这显然让我相信我的应用程序正在泄漏内存.所以我在我的应用程序上运行valgrind,令人惊讶的是它没有发现泄漏.
我不确定为什么我的进程的内存泄漏,所以我查看了我的进程的smaps文件
以及如果我发现有趣的话
08426000-42f56000 rwxp 00000000 00:00 0 [heap]
Size: 961728 kB
RSS: 960252 kB
Pss: 960252 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 960252 kB
Referenced: 960252 kB
Anonymous: 960252 kB
AnonHugePages: 0 kB
Swap: 0 kB
KernelPageSize: 4 kB
为了理解这些数字我做了一些关于Private_Dirty内存的研究,大多数文章表明这是因为它们成本高昂而尚未被释放的内存.
这似乎表明这些只是由应用程序释放但仍被操作系统阻止的内存.
有人可以帮助我更好地理解private_dirty吗?这可以表明我有内存泄漏吗?
谢谢
最佳答案
原文链接:https://www.f2er.com/linux/440863.html