js栈内存和堆内存与垃圾回收机制

v8作为javascirpt引擎,对变量的存储主要有两种位置:栈存储和堆存储

栈内存存储基本类型的变量:如Number,String,boolen,undefined,null,以及对对象和数组变量的指针,对象是动态分配内存,数组的初始化方式分为:

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

静态初始化:初始化时指定每个数据元素的初始值,由系统决定数组长度

我们在代码声明变量并赋值时,所使用的对象就分配在堆中,如果申请的堆内存不够分配新的对象,将继续申请内存,知道堆的大小超过v8的限制。

这里写图片描述

var obj1={zs:'bangbang',age:'22'};

var b =obj1;

b.age=18

console.log(obj.name)//18

var c= obj.age

c=22

以上看出:当我们改变b的数据的时候,我们看到了obj1.name的数据也在改变,但是我们改变c的数据的时候发现,obj1.age的值没有变化,这说明了:b和obj1变量操作的是同一个对象,c和obj1完全独立的

v8的垃圾回收机制

在栈中变量用完之后自动释放,v8堆内存分为新生代和老生代内存

1 新生代对象

在分代的基础上,新生代的对象主要通过Scavenge算法进行垃圾回收,在Scavenge算法的具体实现中,主要采用Cheney算法,它将新生代内存一分为二,一个处于使用中,另一个处于闲置中,处于闲置中为to空间,当我们分配对象时,首先在from空间进行分配,当开始垃圾回收,首先会检查from空间的存活对象,这些存活对象会被复制到to空间中,而非存活的对象占用的空间将被释放,完成复制后,from空间和to空间的角色发生对换,Scavenge的缺点时只能使用堆内存的一半,但因为新生代兑现的生命周期较短,恰恰适合这个算法。

2老生代对象

当一个对象经过多次复制依然存活,它被认为生命周期较长的对象,这种较长生命周期的对象会被移动到老生代中,对于老生代中的对象,由于存活对象占较大比重,在采用Scavenge的方式会有两个问题:一个时存活对象较多,复制存活对象的效率将会很低;另一个问题依然时浪费一半空间的问题。为此,v8在老生代中主要采用Mark-Sweep和Mark-Compact相结合的方式进行垃圾回收。

Mark-Sweep就是我们常说的标记清除,它分为标记和清除两个阶段,在标记阶段遍历堆的所有对象,在随呼的标记清除阶段中,只清除没有被标记的对象。Sweep最大的问题就是进行一次标记清除回收后,内存空间会出现不连续的状态,所以Mark-Compact被提出来,就是标记整理的意思,在对象被标记死亡后,在整理的过程中,将活着的一下对象往一断移动,移动完成后,直接清理掉边界的内存

3,如何触发垃圾回收

提到如何触发垃圾回收,第一个要介绍的是作用域,函数执行结束后,该作用域将会销毁,同时作用域中声明的局部变量分配在该作用域上,随着作用域的销毁而销毁

1.标识符查找

所谓的标识符可以理解为变量名,js在执行中会去查找该变量定义在哪里,也就是我们常说的词法分析,最先查找的是当前作用域,如果在当前作用域中无法找到该变量的声明,将会向上级的作用域查找,直到查到为止,一层一层查找就构成了作用链,

2.变量的主动释放,如果变量是全局变量,由于全局作用域需要直到退出进程才能释放,将会导致引用的对象常驻老生代内存中


 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值