【内存泄漏和内存溢出】JavaScript之深入浅出理解内存泄漏和内存溢出

news/2024/11/6 9:54:36/

📒 博客首页:✎﹏ℳ๓敬坤的博客 🎈
😊 我只是一个代码的搬运工 🎃
🎉 欢迎来访的读者关注、点赞和收藏 🤞
😉 有问题可以私信交流 😆
📃 文章标题:JavaScript之深入浅出理解内存泄漏和内存溢出 🖍

目录

  • 内存泄漏和内存溢出
    • 什么是内存
    • 内存泄漏和内存溢出
      • 内存溢出
      • 内存泄漏
      • 总结

内存泄漏和内存溢出

了解内存泄露和内存溢出之前,我们得知道什么是内存!下面就会详细讲解什么内存

什么是内存

内存(Memory)是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。

内存的运行也决定计算机整体运行快慢的程度

内存条由内存芯片、电路板、金手指等部分组成

在项目中我们打开任务管理器=>性能,这里就有我们内存的使用情况
在这里插入图片描述

内存泄漏和内存溢出

内存是用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。既然是用来存储数据那么就会出现内存泄漏和内存溢出的情况!可能大家会觉得泄漏和溢出不是一样的吗🤣接下来就会详细讲解什么是内存泄漏,什么是内存溢出,以及他们的区别

内存溢出

内存溢出(out of memory):一种程序运行出现的错误。当程序运行需要的内存超过剩余的内存时,就会抛出内存溢出的错误。当我们定义一个变量时,程序会给他对应的内存。当然程序分配的内存是由极限的,当我们不停为变量不停的不停的给它添加数据,就会超出这个极限。于是程序就会崩溃,我们称这个过程到结果叫内存溢出

如下,我们有一个杯子,里面有一些水,我们一直往杯子里倒水,会出现什么情况呢🤔没错,会出现水会从杯子里面溢出来,如下下图一样。当我们做出把水倒出杯子,被家长看到,家长就会告诉你们这是错误的行为,严重的可能还会打你一顿。

在这里插入图片描述
在这里插入图片描述
上面举了一个例子,下面上代码,让我们看看什么是内存溢出吧🧐

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css"></style></head><body>你好<script type="text/javascript">var obj=[]</script></body>
</html>

这是我们定义了变量obj,给obj分配了空间,obj并没有数据,这个时候我们运行代码是正常的,如下:
在这里插入图片描述
当我们疯狂的obj添加数据,如下:

for(let i=0;i<10000;i++){obj.push(new Array(1000000))
}

这个时候页面就崩溃了,变成下面这样子了
在这里插入图片描述
这就是内存溢出导致我们的程序报错,崩溃了!

内存泄漏

内存泄漏:占用的内存没有及时释放,内存泄漏积累得多了就会导致容易内存溢出。当我们定义一个全局变量时,系统就会给这个变量分配内存,然而这个变量,一直占用了一个块地方,没有让出地盘,这种情况我们称它为内存泄漏

如下这是我们平时的内存4.3G:
在这里插入图片描述
接下来,看一下我们使用了全局变量没有释放资源会怎么样🤔
代码如下:

window.abc=10
console.log(window.abc)

如下,我们清晰的看到内存比刚刚多了0.3G,这就是内存泄漏
在这里插入图片描述
我们在看看释放资源会发生什么呢🤔

window.abc=null

过了一会内存又变少了要变回平时的样子
在这里插入图片描述

到了这里就可以总结一下了,内存溢出和内存泄露的区别了

总结

内存泄漏指的是占用的内存没有及时的释放

内存溢出指的是需要的内存超过剩余的内存

内存泄漏不一定会内存溢出,但是内存泄漏过多就会造成内存溢出


http://www.ppmy.cn/news/232284.html

相关文章

手机屏幕解析

手机屏幕解析 最近有买手机的欲望&#xff0c;于是对市面上主流手机屏幕研究了一番。知识属于大家&#xff0c;不敢独享&#xff0c;在此进行分享。 目前市面上主流手机屏幕有&#xff1a;TFT、OLED 、AMOLED、SUPER AMOLED、IPS 。下面我们来一一讲述。 TFT&#xff08;Thin …

手机屏幕原理和设计(触摸屏幕)

//本文参考了很多百度百科的知识  随着android手机的流行&#xff0c;手机触摸屏成为一个时尚。再购机的时候&#xff0c;就会有很多人去问手机的触屏是电阻式的还是电容式的呢&#xff1f;但是其实很多人应该是不知道个中的原委的。只是一个感觉电容式的一定要比电阻式的好。…

苹果手机的屏幕是什么屏幕

苹果手机的屏幕通常是 OLED 屏幕或者是 LCD 屏幕。 OLED 屏幕可以提供高对比度和较高的品质&#xff0c;但是会比较贵。而 LCD 屏幕则相对更便宜&#xff0c;但是对比度和品质略逊于 OLED 屏幕。

前端如何处理文本溢出

前言 在现代网页设计中&#xff0c;文本是网页中最重要的内容之一。然而&#xff0c;当文本超出其容器的大小时&#xff0c;会发生文本溢出的问题。文本溢出不仅会影响网页的视觉效果&#xff0c;还会影响网页的可读性和可用性。在前端开发中&#xff0c;解决文本溢出的问题是…

手机屏幕类型分析

时下主流的屏幕都可归结为LCD与OLED两类。LCD的采用已经比较久远了&#xff0c;他就是指普通的液晶显示屏幕。有时LCD也可与TFT的名称通用&#xff0c;这里谈到的TFT属于LCD的一个子分类。通常认为&#xff0c;OLED在技术上比LCD是要更为先进的&#xff0c;不过OLED发展仍不成熟…

css关于文本溢出

处理思路 1&#xff09;给需要做溢出处理的文本元素设置width或者max-width 2&#xff09;超出部分省略 overflow:hidden 3) 文本溢出处理方式 text-overflow: ellipsis | clip | 自定义字符 如&#xff1a;“_” “.” 4) 设置文本不换行 white-space: nowrap 单行文本溢出 …

手机屏幕测试

来源&#xff1a; http://www.18nrh.com/news.asp?id518 不可否认&#xff0c;近两年手机屏幕往大屏方向的发展&#xff0c;大大增加了屏幕在消费者心目中的分量。目前消费者在选购一款手机时&#xff0c;屏幕已经成为左右他们购买的关键因素之一。所以&#xff0c;本文的关注…

修复手机屏幕的划痕

修复手机屏幕的划痕一&#xff1a;牙膏 可以去除手机屏幕上的细小划痕。 1磨平 可以去买一支有蓝色晶体的的牙膏擦在手机划痕上用纸巾有规律地打转擦,根据划痕的大小不同用的时间也比较长,慢慢地你会发现划痕变小了再擦就不见了,擦的时候不要上牙膏干了&#xff0c;快干的时候放…