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 相关文章推荐
使用node.js半年来总结的 10 条经验
Aug 18 Javascript
关闭页面window.location事件未执行的原因及解决方法
Sep 01 Javascript
javascript正则表达式中的replace方法详解
Apr 20 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
Jun 18 Javascript
分享经典的JavaScript开发技巧
Nov 21 Javascript
jQuery简单倒计时效果完整示例
Sep 20 Javascript
AngularJS通过$location获取及改变当前页面的URL
Sep 23 Javascript
微信小程序 animation API详解及实例代码
Oct 08 Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 Javascript
vue中将html字符串转换成html后遇到的问题小结
Dec 10 Javascript
vue 实现cli3.0中使用proxy进行代理转发
Oct 30 Javascript
js实现随机点名功能
Dec 23 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
PHP伪静态写法附代码
2008/06/20 PHP
php echo 输出字符串函数详解
2010/05/13 PHP
初识php MVC
2014/09/10 PHP
功能强大的PHP发邮件类
2016/08/29 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
浅谈php调用python文件
2019/03/29 PHP
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
javascript学习笔记(十八) 获得页面中的元素代码
2012/06/20 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
jQuery中on()方法用法实例详解
2015/02/06 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
javascript 取小数点后几位几种方法总结
2017/08/02 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
python3实现随机数
2018/06/25 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
pycharm永久激活超详细教程
2020/10/29 Python
python中实现词云图的示例
2020/12/19 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
浅谈html5 响应式布局
2014/12/24 HTML / CSS
柯基袜:Corgi Socks
2017/01/26 全球购物
戴尔英国官网:Dell英国
2017/05/27 全球购物
2014年感恩母亲演讲稿
2014/05/27 职场文书
法律意见书范文
2015/06/04 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书