什么是内存泄露:
内存泄漏就是申请了空间却没有成功释放,或者是申请了空间,却丢失了指向该空间的指针,造成内存无法操控,
危害:
内存泄漏会导致系统变慢,卡顿,甚至卡死。
长期运行的程序出现内存泄漏,影响,如操作系统,后台服务等,影响很大。
内尺寸泄露的分类:(了解)
C/C++ :
程序中一般我们古纳辛两方面:
1 堆内存泄漏
malloc calloc relloc new 等创建出来的空间没有及时调用相应的delete释放掉,
切记: 申请空间和释放空间操作符一定要匹配使用,不匹配可能出错;
2 系统资源泄露 :
比方套接字 ,文件描述符。管道等对应的函数没有释放掉。
如何检测内存泄漏:
1 Linux下检测:有相应几款工具
2 windows 下 第三方工具 VLD
3 其他工具
内存泄露的解决方案:
1 智能指针——————事前预防
2 检测工具——————事后查错
如何避免:
1 申请记得释放(不一定有效(异常安全导致走不到释放的指令),所以还得智能指针管理),
2 采用 RALL思想或智能指针来管理资源;
3:有些公司有检漏工具
4 出错再捡漏(工具靠谱性低,代价高)