检测系统是否存在内存泄漏,主要使用 procrank和kmemleak 配置选项
1.procrank
procrank查看进程内存工具。有四个选项:
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
查看进程内存空间及进程内存有无泄漏,看USS即可。
2. kmemleak
使用make menuconfig ARCH=arm 打开kenrel配置选项
选择 kernel hacking -->memory debuging -->kernel memory leak detector,修改最大size为16400
使用命令进行查看:
echo scan > /sys/kernel/debug/kmemleak
cat /sys/kernel/debug/kmemleak
参考博客:
https://blog.csdn.net/adaptiver/article/details/7084364
https://www.cnblogs.com/sky-heaven/p/5707363.html