暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

什么是内存泄漏?

Gahui驿站 2022-01-11
557
内存泄漏,在百度百科中的解释是这样的:
内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。
https://baike.baidu.com/item/%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F/6181425
因为服务器内存资源过多、开发语言自带垃圾回收机制等在,很多人不会特意去关注这个问题甚至于往往忽略了这个问题,对于Java开发者而言,JVM有垃圾回收机制(内存回收)以及多种垃圾回收算法,不用像C++开发者一样时刻注意使用的变量的内存回收,对于Java开发者来说,遇到最多的一个与内存相关的问题就是内存溢出(OOM,out of memory)。
那么问题又来了,什么是内存溢出?
内存溢出,在百度百科中的解释是这样的:
内存溢出(Out Of Memory,简称OOM)是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。此时程序就运行不了,系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软件,而由系统配置、数据流、用户代码等原因而导致的内存溢出错误,即使用户重新执行任务依然无法避免 [1]  。
https://baike.baidu.com/item/%E5%86%85%E5%AD%98%E6%BA%A2%E5%87%BA
简而言之,其实就是程序运行时内存已经被占用完,没有多余的可用内存空间用于分配。
那么,内存泄漏和内存溢出有何区别呢?
  • 内存泄漏指的是服务器中在内存充足的情况下,对于已分配的内存不能够及时回收,导致内存被占用的问题。

  • 内存溢出指的是程序分配使用的内存不足的问题。

  • 同时,内存泄漏过多,势必最终会导致一种结果就是内存溢出。



文章转载自Gahui驿站,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论