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 相关文章推荐
js判断鼠标同时离开两个div的思路及代码
May 31 Javascript
jQuery之尺寸调整组件的深入解析
Jun 19 Javascript
JSuggest自动匹配下拉框使用方法(示例代码)
Dec 27 Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 Javascript
Javascript点击按钮随机改变数字与其颜色
Sep 01 Javascript
angular.js之路由的选择方法
Sep 24 Javascript
动态加载css方法实现和深入解析
Jan 18 Javascript
bootstrap模态框示例代码分享
May 17 Javascript
JavaScript实现短信倒计时60s
Oct 09 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
Nov 11 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
Vue一次性简洁明了引入所有公共组件的方法
Nov 28 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
smarty静态实验表明,网络上是错的~呵呵
2006/11/25 PHP
PHP的简易冒泡法代码分享
2012/08/28 PHP
php实现文件编码批量转换
2014/03/10 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
Bootstrap源码解读媒体对象、列表组和面板(10)
2016/12/26 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
跟老齐学Python之Python安装
2014/09/12 Python
python中defaultdict的用法详解
2017/06/07 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
用pycharm开发django项目示例代码
2019/06/13 Python
Python笔记之观察者模式
2019/11/20 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
python excel多行合并的方法
2020/12/09 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
英国著名的药妆网站:Escentual
2016/07/29 全球购物
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
拉丁舞学习者的自我评价
2013/10/27 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
python如何进行基准测试
2021/04/26 Python