内存泄漏问题预防与定位

看了很多文章,定位无非是这2种:

1. 查log。自己封装一个申请内存和释放内存的接口,这个接口打印固定格式的日志。然后在发生内存泄漏的时候可以查看这些日志是否打印,如果只打印了申请日志,没打印释放日志,说明这个地方发生内存泄漏。

2. Linux下使用工具valgrind排查

 

预防:

  1. 尽量不使用堆内存
  2. 养成良好的编码习惯,申请后记得释放
  3. 谁申请,谁释放
  4. 采用智能指针
  5. 采用stl。比如用vector而不是数组,用string而不是字符数组
  6. 采用RAII管理资源(利用构造/析构函数,在构造/析构的时候自动申请/释放内存)
posted @ 2023-06-01 13:29  大黑耗  阅读(61)  评论(0)    收藏  举报