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正则中的RegExp对象对象
Nov 07 Javascript
javascript之典型高阶函数应用介绍二
Jan 10 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
Feb 25 Javascript
Node调试工具JSHint的安装及配置教程
May 27 Javascript
AngularJS入门教程(零):引导程序
Dec 06 Javascript
Bootstrap每天必学之导航组件
Apr 25 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
Jul 01 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
Jul 17 Javascript
动态加载、移除js/css文件的示例代码
Mar 20 Javascript
详解Vue源码之数据的代理访问
Dec 11 Javascript
vue引用外部JS的两种种方法
Jan 28 Javascript
vue 页面回退mounted函数不执行的解决方案
Jul 26 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实现jQuery扩展函数
2009/10/30 PHP
深入PHP异步执行的详解
2013/06/03 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
linux 后台运行node服务指令方法
2018/05/23 Javascript
angularJS实现不同视图同步刷新详解
2018/10/09 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
python查看zip包中文件及大小的方法
2015/07/09 Python
python实现淘宝秒杀脚本
2020/06/23 Python
详解python itertools功能
2020/02/07 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
Python requests上传文件实现步骤
2020/09/15 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
智能旅行箱:Horizn Studios
2018/04/30 全球购物
医学专业大学生求职的自我评价
2013/11/27 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
水利公司纪检监察自我鉴定
2014/02/25 职场文书
环境保护标语
2014/06/20 职场文书
我为党旗添光彩演讲稿
2014/09/10 职场文书
志愿者事迹材料
2014/12/26 职场文书
物业工程部岗位职责
2015/02/11 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
pytorch 6 batch_train 批训练操作
2021/05/28 Python
详解pytorch创建tensor函数
2022/03/22 Python
经典《舰娘》游改全新动画预告 预定11月开播
2022/04/01 日漫