js的新生代垃圾回收知识点总结


Posted in Javascript onAugust 22, 2019

在进行老生代的标记清除法回收以前,还会有一个新生代的垃圾回收算法执行。

新生代和老生代

所谓新生代,指的是新产生的对象;老生代就是经历过新生代垃圾回收后还“存活”下来的对象。

新生代的垃圾回收算法 Scavenge GC

算法很简单:

1. 我们维护一个列表,老生代对象每次指向一个新生对象的时候,记录下来;每次删除指向的时候,删除记录。(这样我们就知道新生代对象里面,哪些对象是存活的了)

2. 我们把新生代对象的内存平均分开 2 份空间From 和 To

3. 每当有新生对象诞生,就会在 From 空间出现

4. 一旦 From 空间被占满,就触发 Scavenge GC

5. 根据维护的列表,我们从 From 空间拿出存活的对象,复制到 To 空间

6. 清空 From 空间 (这样就可以实现把不活跃的对象给回收掉)

7. From To 空间角色互换,开始下一轮循环

其中经历过回收还存活的对象,age++,在 Java 默认情况下,age 15 的时候会晋升到老生代,JS 规定的 age,博主还没查明

还有一种情况,当复制到 To 空间的时候, To 空间已经使用了25%,那么这个对象直接晋升到老生区。

以上对js的新生代垃圾回收浅析做了简单的介绍,感谢大家的阅读和对三水点靠木的支持。

Javascript 相关文章推荐
兼容主流浏览器的iframe自适应高度js脚本
Jan 10 Javascript
jquery实现点击弹出层效果的简单实例
Mar 03 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
Apr 23 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
Jan 18 Javascript
jQuery监听浏览器窗口大小的变化实例
Feb 07 Javascript
Vue 进阶教程之v-model详解
May 06 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
Nov 27 Javascript
vue和webpack安装命令详解
Jun 15 Javascript
JS html事件冒泡和事件捕获操作示例
May 01 Javascript
Vue项目中使用WebUploader实现文件上传的方法
Jul 21 Javascript
javascrpt密码强度校验函数详解
Mar 18 Javascript
JS原型对象操作实例分析
Jun 06 Javascript
JS实现移动端在线签协议功能
Aug 22 #Javascript
jQuery表单选择器用法详解
Aug 22 #jQuery
node实现简单的增删改查接口实例代码
Aug 22 #Javascript
微信小程序实现上传图片裁剪图片过程解析
Aug 22 #Javascript
ES6基础之 Promise 对象用法实例详解
Aug 22 #Javascript
ES6基础之数组和对象的拓展实例详解
Aug 22 #Javascript
node express使用HTML模板的方法示例
Aug 22 #Javascript
You might like
用PHP伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
alert中断settimeout计时功能
2013/07/26 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
AngularJS基础 ng-show 指令简单示例
2016/08/03 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
JavaScript实现好看的跟随彩色气泡效果
2020/02/06 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
2020/08/05 Javascript
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python实现一个简单的验证码程序
2017/11/03 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
浅谈tensorflow中几个随机函数的用法
2018/07/27 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
大学毕业通用个人的求职信
2013/12/08 职场文书
小班上学期评语
2014/05/05 职场文书
家长建议怎么写
2014/05/15 职场文书
职业道德模范事迹材料
2014/08/24 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
学生检讨书范文
2019/06/24 职场文书