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 相关文章推荐
StringTemplate遇见jQuery冲突的解决方法
Sep 22 Javascript
document.documentElement的一些使用技巧
Apr 18 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
Oct 17 Javascript
jQuery插件datepicker 日期连续选择
Jun 12 Javascript
javascript基础知识分享之类与函数化
Feb 13 Javascript
AngularJS基础 ng-show 指令简单示例
Aug 03 Javascript
学习使用jQuery表单验证插件和日历插件
Feb 13 Javascript
JavaScript实现选中文字提示新浪微博分享效果
Jun 15 Javascript
Javascript 之封装(Package)
Sep 14 Javascript
对angularjs框架下controller间的传值方法详解
Oct 08 Javascript
JavaScript如何实现元素全排列实例代码
May 14 Javascript
实用的 vue tags 创建缓存导航的过程实现
Dec 03 Vue.js
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
oracle资料库函式库
2006/10/09 PHP
使用 php4 加速 web 传输
2006/10/09 PHP
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
JS刷新当前页面的几种方法总结
2013/12/24 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
Angularjs使用过滤器完成排序功能
2017/09/20 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
python搭建简易服务器分析与实现
2012/12/15 Python
python使用百度翻译进行中翻英示例
2014/04/14 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
django框架ModelForm组件用法详解
2019/12/11 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
Html5页面中的返回实现的方法
2018/02/26 HTML / CSS
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
银行毕业实习自我鉴定
2013/09/19 职场文书
装饰资料员岗位职责
2013/12/30 职场文书
促销活动总结怎么写
2014/06/25 职场文书
餐饮服务食品安全责任书
2014/07/25 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书