内存泄漏和内存溢出的区别
原文地址https://www.zhihu.com/question/40560123
简单来说,操作系统就像资源分配人员,你要使用内存的时候分给你,你用完了还给它。如果你使用了没有分配给你的内存就是内存溢出,如果你用完了没有还就是内存泄漏。会引起的问题:内存溢出存在的问题是你用了没有分配给你的内存,系统是不知道的,他又把内存分配给了其他程序,结果就是别人也写了或者读了这个内存。程序可能崩溃。当然也可能没问题,所以内存溢出往往不好查。内存泄漏的问题就比理解,你没有还给系统,系统的内存就越来越少。直到没有可用内存。
泄漏是占着不用了,溢出是用不该用的地方;溢出一般会出事,泄漏在内存无限时不会出事。泄漏是说你的程序有BUG 导致内存不释放。溢出是指内存不够用了 导致不够用的原因很多 泄漏只是其中一种。
内存泄露是指你的应用使用资源之后没有及时释放,导致应用内存中持有了不需要的资源,这是一种状态描述。而内存溢出是指你的应用的内存已经不能满足正常使用了,堆栈已经达到系统设置的最大值,进而导致崩溃,这事一种结果描述。而且通常都是由于内存泄露导致堆栈内存不断增大,从而引发内存溢出。
所谓内存泄漏,只是一个编程习惯的问题。实际上很多内存泄漏对程序的运行不会有任何影响,有的内存泄漏,要连续不关机不重启电脑长达几十年的时间,才会被人觉察到。比如说电脑的内存有32GB,你程序分配了一块2KB的内存。而这块内存没有起任何作用,就一直放在那里。这就是内存泄漏的一种。有什么影响吗? 毫无影响。一般说内存泄漏是指分配了一块内存,用它存了一些东西,然后不再用它了,但并没有把这块内存释放掉。实际上只要程序退出了,不管泄漏不泄露,所有的内存一样会释放。内存溢出比这严重多了。比如电脑有32GB的内存,32GB全用完了,这叫内存溢出。不管内存泄漏与否,只要用了这么多内存,都会导致内存溢出。
内存溢出,这个好理解,说明存储空间不够大。就像倒水倒多了,从杯子上面溢出了来了一样。内存泄漏,原理是,使用过的内存空间没有被及时释放,长时间占用内存,最终导致内存空间不足,而出现内存溢出。这个也很好理解,所谓的“泄漏”是相对释放对象来定义的,逃脱了释放对象的释放,漏处理了,也就是泄漏。形象一点理解,就是一个大的排放废水的池子,你用水瓢(相当于释放对象)瓢水,但是水瓢有个洞,漏了。
泄漏就是内存申请后,用完没有释放,造成可用内存越来越少。溢出指用户实际的数据长度超过了申请的内存空间大小,导致覆盖了其他正常数据,容易造成程序异常,严重的,攻击者可以以此获取程序控制权。
内存泄露:用完扔了,没有归还。内存溢出:霸占不属于你的资源。
内存泄漏和内存溢出的区别相关推荐
- java 内存溢出和内存泄漏_JAVA中的内存溢出和内存泄漏有很大的区别
JAVA中的内存溢出和内存泄漏分别是什么,有什么联系和区别,我谈谈自己的理解. 内存泄漏(memory leak ):申请了内存不释放,比如100m的内存,分配了10m的内存一直不回收,那么可以用的内 ...
- 透彻分析JAVA内存泄漏和内存溢出的区别
JAVA内存泄漏和内存溢出的区别和联系 1.内存泄漏memory leak : 是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出. 2 ...
- JAVA内存泄漏和内存溢出的区别和联系
内存泄漏和内存溢出的区别与解决方式_jie1175623465的博客-CSDN博客_内存泄露和内存溢出是指什么,它们有什么区别 内存泄漏(memory leak ) 内存溢出 (out of memo ...
- 内存泄漏和内存溢出的关系和区别
作者:不怕天黑_0819 链接:https://www.jianshu.com/p/61d34df7eabe 一.内存泄漏(memory leak) 1.内存泄漏是指程序中已动态分配的堆内存由于某种原 ...
- 内存泄漏和内存溢出的联系与区别
一:内存泄漏(memory leak) 1:内存泄漏是指程序中已动态分配的堆内存由于某种原因未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统奔溃等严重后果. 2:一次内训泄漏似乎不会 ...
- python会不会出现内存泄露_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- python会内存泄漏吗_Python内存泄漏和内存溢出的解决方法
Python内存泄漏和内存溢出的解决方法 发布时间:2020-10-30 23:08:34 来源:亿速云 阅读:92 作者:Leah 这篇文章将为大家详细讲解有关Python内存泄漏和内存溢出的解决方 ...
- python 内存溢出能捕获吗_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- python内存泄漏解决方案_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
- python多线程内存溢出_Python内存泄漏和内存溢出的解决方案
一.内存泄漏 像Java程序一样,虽然Python本身也有垃圾回收的功能,但是同样也会产生内存泄漏的问题. 对于一个用 python 实现的,长期运行的后台服务进程来说,如果内存持续增长,那么很可能是 ...
最新文章
- setcookie第三个值为什么写0
- java content()_理解content(一)
- 计算机视觉实习岗面试准备(二.深度学习)
- php记录邮件发送,有关php邮件发送一点记录
- 工作中最常用的Excel函数公式大全
- 内存泄漏的原因及解决办法_编程基础 | C++片段 指针、多态和内存分配
- js 获取url多个参数
- 辨别光纤收发器优劣的方法介绍
- 持续定义Saas模式云数据仓库+BI
- angular js 默认选中_AngularJS Select(选择框)
- Kafka 可视化工具kafkatool简单使用入门
- Python课程总结
- 内存测试拷机软件,烤机软件 OCCT 更新 9.0.0 版本,新增 CPU/内存跑分测试
- r4900g3系统安装linux_H3C UniServer R4900 G3
- Workfine5.0扩展功能——如何识别身份证信息?
- 银行账户存储系统C++
- 华为Freebuds Pro 2开启智能高清L2HC后音质差,试试LDAC~
- 14_自定义ItemDecoration实现qq好友列表分组效果
- 意外收到快钱送的现金了
- NPDP学习笔记(四)文化、组织、团队
热门文章
- console java_Java Console writer()方法与示例
- java 方法 示例_带有示例的Java EnumSetSupplementOf()方法
- 反转字符串中的元音字符_C程序消除字符串中的所有元音
- 第四章 纤维结构对染色性能的影响单元测验
- Java——集合(Map集合的两种迭代)
- 老男孩python全栈开发视频教程_老男孩Python全栈开发(92天全)视频教程 自学笔记08...
- uva 10127——ones
- uva 10110——Light, more light
- 开启一个新的命令行窗口
- 【ubuntu】ubuntu下用make编译程序报错找不到openssl/conf.h