2025前端面试-内存泄露-001

垃圾回收 GC (Garbage Collection)

回收已经被执行完成,再也使用不到的函数和变量所占用的内存空间

  • 闭包 (闭包的数据是不可以被垃圾回收的
  • 全局变量

预期之中不会被回收 的部分不会被称之为内存泄漏,而预期之外的内存泄漏则被称之为内存泄漏

(如果清除了闭包中的 数据,那么会影响正常情况下闭包的使用)

引用计数 — 注意会出现循环引用的问题 (之前

//查看对象的引用数
//对象被a引用
let a = {x:100}
let a1 = 1  //此时对象的引用数为2  被a  a1引用
a = 10  //此时对象的引用数为 1
a1=null  //此时对象的引用数为 0
循环引用
function fn3(){
    const obj1 = {}
    const obj2 = {}
    obj1.a = obj2
    obj2.a = obj1
}

标记清除

JS 根 /window 遍历其 根 /window子属性 判断是否会得到某个属性 如果无法得到就会对这个属性进行清除销毁 ,能找到就保留。

JS内存泄漏如何检测,场景有哪些?

  • wangEditor ---- 使用Chrome devTools 的performance 和Memory工具来检测js内存
  • 开发者工具
  • (正常图像是 锯齿状 因为销毁就会是一段时间之后销毁
场景—Vue
  • 全局变量,函数引用,组件销毁时,未清除
  • 全局事件,定时器引用,组件销毁时候未清除
  • 被自定义事件引用,组件销毁时,未清除
    • ----引用到this 组件销毁时 是否需要进行清楚

扩展:WeakMap WeakSet 弱引用

WeakMap的key只能是引用类型(对象 数组类型) ---- 像字符串 数字这种值类型也不会出现类似的内存泄露的问题

没法使用size forEach length size只能通过get来获取 (因为引用过他的数据可能会被清除它自身都无法保证,处理不了)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/901915.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣刷题(sql)--零散知识点(1)

通过一段时间的刷题,感觉自己的sql能力逐渐上去,所以不会像前三道题一样讲那么详细了,这里主要会讲到一些特殊的知识点和方法。另外,我的建议是做完一个题有好的想法赶紧记录下来,不要想着最后汇总,不然会懒…

基于SSM平面设计课程在线学习系统的设计

管理员账户功能包括:系统首页,个人中心,学生管理,教师管理,课程类型管理,课程学习管理,试题讲解管理,作业信息管理 前台账号功能包括:系统首页,个人中心&…

Vue3实现获取验证码按钮倒计时效果

Vue3实现获取验证码按钮倒计时效果 效果描述:用户点击获取验证码按钮,发送请求给后端,按钮失效,并且开始倒计时60秒;在此期间,用户无法再次点击按钮,即使用户刷新页面,倒计时依然存在…

Java项目实战II基于微信小程序的马拉松报名系统(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 马拉松运动…

XQT_UI 组件|01|颜色

介绍 XColor 是一个用于处理颜色的类,提供了获取颜色和样式的方法。它可以与 Qt 的 UI 组件结合使用,以便在应用程序中实现丰富的颜色效果。 安装 确保你已经在项目中包含了 xqt_color_palette.hpp 和相关的头文件。 #include "xqt_color_palet…

【Go语言】Gin框架的简单基本文档

思维导图 一、go 原生的http服务 在go中写一个web服务非常方便和快速: package mainimport ("encoding/json""fmt""io""net/http" )type Response struct {Code int json:"code"Data any json:"dat…

Spring中配置文件方式来配置实现数据源

我的后端学习大纲 我Spring学习大纲 1.1.数据源(连接池)的作用: 1.数据源(连接池)是提高程序性能而出现的2.数据源的使用步骤 : 创建数据源对象,在对象创建的时候会初始化部分连接资源使用连接…

【jvm】堆的内部结构

目录 1. 说明2. 年轻代(Young Generation)2.1 说明2.2 Eden区2.3 Survivor区 3. 老年代(Old Generation)3.1 说明3.2 对象存放3.3 垃圾回收 4. jdk7及之前5. jdk8及之后 1. 说明 1.JVM堆的内部结构主要包括年轻代(You…

录屏软件推荐,4个工具助你高效录屏。

不同的录屏软件具有不同的特点和优势,如果只是偶尔需要录制,Win10 自带的录制功能就很方便;如果需要更加专业的录制和编辑功能,我可以推荐几款功能更加多样也效果较好的第三方软件。 1、福昕高清录屏 直达:www.foxits…

SVM(支持向量机)

SVM(支持向量机) 引言 支持向量机(Support Vector Machine,SVM),可以用来解答二分类问题。支持向量(Support Vector):把划分数据的决策边界叫做超平面,点到超平面的距离叫做间隔。在SVM中,距离超平面最近…

基于neo4j的新冠治疗和新冠患者轨迹的知识图谱问答系统

毕业设计还在苦恼选题?想做一个兼具前沿性和实用性的技术项目?了解下这款基于Neo4j的新冠治疗和患者轨迹的知识图谱问答系统吧! 系统可以实现两大功能模块:新冠医疗信息和患者活动轨迹的展示与问答。通过图谱技术,你可…

VBA技术资料MF219:创建一个新的类型模块

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

【方波转正弦波谐波二阶】2022-6-10

缘由怎么用555时基电路将方波转换为正弦波?-其他-CSDN问答 可参带通滤波器电路图大全(三款带通滤波器电路设计原理图详解) - 全文 - 应用电子电路 - 电子发烧友网

《关于构图问题》

这是一本讲绘画技巧的书,但仔细琢磨体现出不易察觉的东方哲学思想。中国画讲究意境与留白,留白不代表“空”,而是代表对“实”的延伸,留下瞎想空间,实现对“有限(实)”的超越。 总论 文艺是人们…

演员王丹妮化身岛屿姐姐 开启少年们的欢乐挑战之旅

全民海岛真人秀《岛屿少年》正在持续热播中,少年们迎来了“茶嵛饭后”⻩⻥馆的开业日,知名演员王丹妮以岛屿姐姐的身份,悄然降临此地,为岛屿少年们带来了一场别开生面的考验。 在餐厅正式开业前夕,王丹妮巧妙地伪装成普…

【Spark+Hive大数据】基于spark抖音数据分析预测舆情系统(完整系统源码+数据库+开发笔记+详细部署教程)✅

目录 【SparkHive大数据】基于spark抖音数据分析预测舆情系统(完整系统源码数据库开发笔记详细部署教程)✅ 一、项目背景 二、研究目的 三、项目意义 四、项目功能 五、项目创新点​​​​​​​ 六、算法介绍 七、项目展示 八、启动文档 九、…

Android Kotlin中协程详解

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家, 👉点击跳转到教程 前言 Kotlin协程介绍: Kotlin 协程是 Kotlin 语言中的一种用于处理异步编程的机制。它提供了一…

Chromium127调试指南 Windows篇 - 安装C++扩展与配置(五)

前言 在前面的文章中,我们已经安装了Visual Studio Code(VS Code)并配置了基本的扩展。现在,我们将进一步优化我们的开发环境,重点关注C相关的依赖扩展。这些扩展对于在VS Code中高效开发和调试Chromium项目至关重要。…

如何在 Linux 中对 USB 驱动器进行分区

如何在 Linux 中对 USB 驱动器进行分区 一、说明 为了在 Linux 上访问 USB 驱动器,它需要有一个或多个分区。由于 USB 驱动器通常相对较小,仅用于临时存储或轻松传输文件,因此绝大多数用户会选择只配置一个跨越整个 USB 磁盘的分区。但是&a…

基于Django+python的车牌识别系统设计与实现(带文档)

项目运行 需要先安装Python的相关依赖:pymysql,Django3.2.8,pillow 使用pip install 安装 第一步:创建数据库 第二步:执行SQL语句,.sql文件,运行该文件中的SQL语句 第三步:修改源…