内存泄露跟溢出的区别

内存泄露跟溢出的区别,第1张

内存溢出内存泄漏的区别

系统:Windows 11
软件版本:

内存溢出是指当程序申请内存时,没有足够的内存空供其使用,内存不足;出现;比如你申请一个整数,但是给它一个long来保存这个数,那就是内存溢出。

内存泄漏是指程序在申请内存后无法释放申请的内存空。一次内存泄漏的危害可以忽略不计,但是内存泄漏的后果是非常严重的。再多的内存,迟早都会被占用。

内存泄漏可以分为4类:

1.频繁内存泄漏。有内存泄漏的代码会被执行几次,每次执行都会造成内存泄漏。

2.偶尔内存泄漏。内存泄漏的代码只会在某些特定的环境或操作过程中发生。复发和散发是相对的。对于特定的环境,偶尔可能会变成经常。因此,测试环境和测试方法对于检测内存泄漏非常重要。

3.一次性内存泄漏。有内存泄漏的代码只会执行一次,或者由于算法的缺陷,总会有一个且只有一个内存泄漏。比如内存是在类的构造函数中分配的,但是在析构函数中没有释放,所以内存泄漏只会发生一次。

4.隐式内存泄漏。程序在运行过程中不断分配内存,但直到最后才释放内存。严格地说,这里没有内存泄漏,因为最终的程序释放了所有请求的内存。然而,对于一个服务器程序来说,它需要运行几天、几周甚至几个月。不能及时释放内存也可能导致系统中所有内存的最终耗尽。因此,我们将这种内存泄漏称为隐式内存泄漏。


欢迎分享,转载请注明来源:聚客百科

原文地址: http://juke.outofmemory.cn/tech/766200.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-17
下一篇 2022-07-17

发表评论

登录后才能评论

评论列表(0条)

保存