当前位置: 首页 > news >正文

面试题:说说JavaScript中内存泄漏的几种情况?垃圾回收机制

在这里插入图片描述

内存泄漏

  • 一、是什么?
  • 二、垃圾回收机制?
    • 2.1、标记清除法
    • 2.2、引用计数法
  • 三、常见内存泄露情况

一、是什么?

  • 由于疏忽或错误造成程序未能释放已经不再使用的内存;
  • 并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费;
  • 对于持续运行的服务进程,必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃

二、垃圾回收机制?

Javascript 具有自动垃圾回收机制,也就是说,执行环境会负责管理代码执行过程中使用的内存;
原理:垃圾收集器会定期(周期性)找出那些不在继续使用的变量,然后释放其内存;

2.1、标记清除法

JavaScript最常用的垃圾收回机制。

  • 当变量进入执行环境时,就标记这个变量为“进入环境“。进入环境的变量所占用的内存就不能释放,当变量离开环境时,则将其标记为“离开环境“;

在这里插入图片描述

2.2、引用计数法

在这里插入图片描述
在这里插入图片描述

三、常见内存泄露情况

闭包、函数内有全局变量、定时器等等。在这里插入图片描述

http://www.lryc.cn/news/105217.html

相关文章:

  • HTML基础介绍1
  • 【腾讯云 Cloud Studio 实战训练营】Redisgo_task 分布式锁实现
  • Linux CentOS系统怎么下载软件
  • SNAT和DNAT原理与应用
  • Java8实战-总结11
  • 2023爱分析·低代码厂商全景报告|爱分析报告
  • 视频两侧有黑边怎么处理?教你裁切视频黑边方法
  • 如何设计一个Android端高性能日志监控系统
  • maven下载按照及初次使用相关配置
  • opencv05-掩膜
  • 通讯软件013——分分钟学会Kepware OPC AE Server仿真配置
  • Windows下安装Hive(包安装成功)
  • count(列名) ,count(1)与count(*) 有何区别?
  • node.js判断元素是否包括
  • 基于SpringBoot+Vue的地方废物回收机构管理系统设计与实现(源码+LW+部署文档等)
  • 【SAP MII学习】Day01--Overview, Security Services, and Workbench
  • 枚举类常见用法,A Guide to Java Enums
  • Vue Baidu Map--vue引入百度地图
  • 使用Express部署Vue项目
  • 344.翻转字符串+387.字符串中的第一个唯一字符
  • 安装mmcv
  • 什么是服务网格?
  • 8.1作业
  • linux-安全技术
  • 如何在免费版 pycharm 中使用 github copilot (chatGPT)?
  • SSD202D-UBOOT-FDT-获取DTB
  • 【Maven】Setting文件分享
  • 使用requestAnimationFrame 实现倒计时功能js(简单秒数倒计时)
  • jenkins通过sshPut传输文件的时候,报错Permission denied的SftpException
  • 【Python】数据分析+数据挖掘——探索Pandas中的数据筛选