js的垃圾回收机制

2023-10-30

js 垃圾回收机制(GC)

1、GC–garbage collection ,js具有“自动”垃圾回收机制
即执行环境会负责管理代码执行过程中使用的内存
2、GC会定期(周期性的)找出那些不再继续使用的变量,然后释放其内存
3、不再使用的变量即生命周期结束的变量会被释放,只能是局部变量
全局变量的生命周期,直到浏览器卸载页面才会结束
4、闭包由于内部函数原因,外部函数不能算结束,无法释放内存
5、js的垃圾回收机制----采用的方式
(1)标记清除法
当变量进入执行环境时,就将这个变量标记为“进入环境”,当变量离开环境时会被标记“离开环境”,离开环境的变量内存被释放

        function f1(){
            //被标记已进入执行环境
            var a=1
            var b=2
        }
        f1()  //执行完毕,a,b被标记离开执行环境,内存释放

(2)引用计数法
跟踪记录每个值被引用的次数,当某个值的引用次数变为0时,说明没有方法在访问该值了,则可将其占用的内存收回


function f1(){
            //跟踪a的引用计数
            var a={}   //a的引用次数 0
            var b=a    //a的引用次数 1
            var c=a     //a的引用次数 2
            var b={}    //a的引用次数 1
            var c=[]    //a的引用次数 0
        }

(3)手工 --直接置空,GC下次再运行时会删除这些值

    a=null

————————————————
版权声明:本文为CSDN博主「盐味气水」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_47433370/article/details/125944847

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

js的垃圾回收机制 的相关文章

随机推荐

  • unity读取Json文件

    这里说的unity读取Json文件 简单来说就是在发布或者未发布时场景里有些数据是通过读取一个或多个外部文件来方便进行操作的 这样做有什么好处呢 就是发布之后方便修改而无需重复再打包 话不多说 1 首先你需要新建一个类 using Syst
  • 计算机地址怎么填写,电脑服务器名称或地址怎么填

    使用宽带路由器的话一般建议手工指定电脑的IP地址和DNS等参数 下面学习啦小编为大家整理了电脑服务器名称或地址怎么填写的内容 欢迎参阅 正确填写电脑IP地址和DNS参数名称 如果你使用的是Windows 2000或Windows XP系统
  • ztree自定义图标(iconSkin,iconClose,iconOpen)

    设计图 先放上ztree的api http www treejs cn v3 api php 首先是ztree的初始化 js文件的初始化 var obj name 福建省 id 1 iconOpen openurl iconClose cl
  • 云原生服务无状态(Stateless)特性的实现

    文章目录 为何要使用无状态服务 无状态服务的实现方法 1 会话状态外部化 2 负载均衡 3 自动伸缩 4 容器编排 5 数据存储 6 安全性 示例 使用Spring Boot实现无状态服务 结论 欢迎来到云计算技术应用专栏 云原生服务无状态
  • Java数组(复习)

    Java数组 数组 数组是指一种容器 可以用来存储同种数据类型的多个值 数组容器在存储数据的时候 需要结合隐士转换考虑 例如 int类型的数组容器 可以存储byte short int类型的数组 double类型的数组可以存储 byte s
  • 如何取消edge浏览器最新版,新增标签页的广告呢?

    今天我打开edge浏览器 快乐的写我的代码 突然发现 新建标签页的时候竟然这样 简直气煞我也 我不允许简洁的生活出现这种事 难道我又要换回谷歌 但是谷歌不能在线备份书签 我已经丢了很多次啦 于是我找到了这个 使用edge官方的插件库安装之后
  • 【JavaWeb】练习三

    一 简答题 1 gt 简述servlet的生命周期 第一次访问某个servlet的时候 tomcat容器会创建servlet实例 紧接着会调用init方法进行初始化 然后执行service方法 在父类中的service方法中判断请求是get
  • 从java环境配置到成功使用VOSviewer

    本文的目的是分享如何快速安装和使用VOSviewer B站包括csdn很多信息都是分散的 找资源会浪费很多时间 本文帮助小白快速高效的安装VOSviewer 第一步 下载安装包 下载方法一 如果电脑当中没有配置过java环境 可以参考下面的
  • C# 通过文件结构直接生成xls(Excel)文件

    以下代码演示了 直接通过excel可以识别的文件结构生成xls文件的方法 这样就可以不引用麻烦的ole了 using System using System Collections Generic using System Text nam
  • 安信可ESP32-CAM修改Web网页源代码

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 安信可ESP32 CAM修改Web网页源代码 前言 一 使用CyberChef将数组转义成 HTML 二 使用CyberChef将 HTML转义成数组 参考 前言 安信可ES
  • 毕业设计-基于机器视觉的虹膜图像人眼定位及分类算法-yolo

    目录 前言 课题背景和意义 实现技术思路 一 算法基础 二 EL YOLO模型 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的
  • 两个蓝牙模块HC-05的主从机匹配

    两个蓝牙模块HC 05的主从机匹配 1 HC 05蓝牙模块知识 1 1 两种工作模式 1 2 进入命令响应工作模式 1 3 什么叫做置高一次PIO11 1 4 怎么区分进了命令响应工作模式呢 1 5 串口调试助手发送AT命令格式 2 AT命
  • C#调用Python脚本训练并生成AI模型(以Paddle框架为例)

    目录 一 C 调用通过IronPython语言移植 1 1 IronPython安装 1 2 示例代码 1 3 运行结果 1 4 特点 二 C 调用Python文件打包dll 2 1 步骤 2 1 1 Cython生成python脚本预编译
  • 面试--竞品分析,会随时补充

    面试题 小型竞品分析 对于一般的竞品分析 可以参照产品的五要素 分别从产品的五要素进行分析 战略层 企业和用户对于产品的期望和目标是什么 范围层 产品的功能和内容需求集合 结构层 确定要呈现给用户的选项和呈现模式 及交互设计和信息架构 框架
  • 【计算机视觉

    文章目录 一 分割 语义相关 20篇 1 1 VideoCutLER Surprisingly Simple Unsupervised Video Instance Segmentation 1 2 Compositional Semant
  • es6链判断运算符和null的判断运算符

    链判断运算符 JavaScript在实际编程中 如果读取对象内部的某个属性 往往需要判断一下 需要判断属性的上层对象是否存在 比如 读取 dataList userInfo firstName这个属性 安全的写法是写成下面这样 let da
  • 【微信小程序】小程序之间跳转(路由)参数传递及跳转方式详解和封装

    今天我们来说道说道微信小程序里面当中的几种跳转方式 微信小程序跳转的方式总共有5种 可以对应各种的应用场景 1 wx navigateTo 保留当前页面 跳转到应用内的某个页面 但是不能跳到 tabbar 页面 可封装函数为 跳转新页面页面
  • 项目中没有 requirements.txt

    项目下创建一个文件 autoinstall py 复制下面的代码 在项目最开始加入import autoinstall 直接运行项目即可 import sys import os from importlib import import m
  • 《机器学习有意思! 01》- 世界上最简单的机器学习入门

    本文首发于https jizhi im blog post ml is fun 01 你是否也曾听人们谈起机器学习但是只有一个朦胧的概念 你是否厌倦了在同事的高谈阔论中颓然欲睡 此诚求变之机 本教程适合所有对机器学习感到好奇 却不知从何下手
  • js的垃圾回收机制

    js 垃圾回收机制 GC 1 GC garbage collection js具有 自动 垃圾回收机制 即执行环境会负责管理代码执行过程中使用的内存 2 GC会定期 周期性的 找出那些不再继续使用的变量 然后释放其内存 3 不再使用的变量即