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 相关文章推荐
使一个函数作为另外一个函数的参数来运行的javascript代码
Aug 13 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
Apr 24 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
Mar 03 Javascript
js模仿php中strtotime()与date()函数实现方法
Aug 11 Javascript
AngularJS 使用$sce控制代码安全检查
Jan 05 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
Jun 06 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
Apr 20 Javascript
Vue的Flux框架之Vuex状态管理器
Jul 30 Javascript
angular或者js怎么确定选中ul中的哪几个li
Aug 16 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
Oct 24 Javascript
vue中路由验证和相应拦截的使用详解
Dec 13 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 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
基于header的一些常用指令详解
2013/06/06 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
ThinkPHP实现一键清除缓存方法
2014/06/26 PHP
IE 下的只读 innerHTML
2009/08/21 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
2013/06/24 Javascript
js 实现浏览历史记录示例
2014/04/20 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
微信小程序实现YDUI的ScrollNav组件
2018/02/02 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
python构建深度神经网络(续)
2018/03/10 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
Python使用贪婪算法解决问题
2019/10/22 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
澳大利亚第一的设计师礼服租赁网站:GlamCorner
2017/08/13 全球购物
新学期决心书
2014/03/11 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
教师个人自我评价
2015/03/04 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
法律意见书范文
2015/05/20 职场文书
大学生创业计划书
2019/06/24 职场文书
如何在Python中创建二叉树
2021/03/30 Python
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers