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 相关文章推荐
改善用户体验的五款jQuery插件分享
May 22 Javascript
让图片旋转任意角度及JQuery插件使用介绍
Mar 20 Javascript
Google Maps API地图应用示例分享
Oct 23 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
JavaScript使用RegExp进行正则匹配的方法
Jul 11 Javascript
详细解读JavaScript的跨浏览器事件处理
Aug 12 Javascript
如何实现移动端浏览器不显示 pc 端的广告
Oct 15 Javascript
JavaScript如何动态创建table表格
Aug 02 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
angular 服务随记小结
May 06 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
May 13 jQuery
原生js实现购物车功能
Sep 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
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
php变量范围介绍
2012/10/15 PHP
整理的一些实用WordPress后台MySQL操作命令
2013/01/07 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
ThinkPHP删除栏目(实现批量删除栏目)
2017/06/21 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
JQuery ZTree使用方法详解
2017/01/07 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
JavaScript实现shuffle数组洗牌操作示例
2019/01/03 Javascript
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
python+logging+yaml实现日志分割
2019/07/22 Python
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
计算机通信专业推荐信
2014/02/22 职场文书
打架检讨书2000字
2014/02/22 职场文书
求职自我评价范文
2015/03/09 职场文书
杨善洲观后感
2015/06/04 职场文书
花木兰观后感
2015/06/10 职场文书
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript
移除Selenium中window.navigator.webdriver值
2022/06/10 Python