软件开发架构师

内存泄漏与内存溢出的区别

运维 38 2019-02-25 14:22

一.概念

  • 内存溢出 OOM:指你的应用的内存已经不能满足正常使用了,堆栈已经达到系统设置的最大值,进而导致崩溃,这是一种结果描述。
  • 内存泄漏(Memory Leak):指你的应用使用资源之后没有及时释放,导致应用内存中持有了不需要的资源,这是一种状态描述。你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。
    通常都是由于内存泄露导致堆栈内存不断增大,从而引发内存溢出。 从用户使用程序的角度来看,内存泄漏本身不会产生什么危害,作为一般的用户,根本感觉不到内存泄漏的存在。真正有危害的是内存泄漏的堆积,这会最终消耗尽系统所有的内存。


作者:墨源为水
链接:https://www.jianshu.com/p/eef57e3ace13
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
文章评论