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 animate 动画效果使用说明
Nov 04 Javascript
如何在一个页面显示多个百度地图
Apr 07 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
Sep 24 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
May 17 Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 Javascript
jQuery仿IOS弹出框插件
Feb 18 Javascript
VUE axios发送跨域请求需要注意的问题
Jul 06 Javascript
微信小程序 获取session_key和openid的实例
Aug 17 Javascript
详解webpack 打包文件体积过大解决方案(code splitting)
Apr 10 Javascript
vue插件实现v-model功能
Sep 10 Javascript
layui 富文本编辑器和textarea值的相互传递方法
Sep 18 Javascript
Vant 在vue-cli 4.x中按需加载操作
Nov 05 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 信息采集程序代码
2009/03/17 PHP
php数组键名技巧小结
2015/02/17 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
JS URL传中文参数引发的乱码问题
2009/09/02 Javascript
jquery实现一个简单好用的弹出框
2014/09/26 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
jQuery检查元素存在性(推荐)
2016/09/17 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
2017/07/28 Javascript
基于nodejs的微信JS-SDK简单应用实现
2019/05/21 NodeJs
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
node.js开发辅助工具nodemon安装与配置详解
2020/02/06 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
[01:14]DOTA2亚洲邀请赛小组赛赛前花絮
2017/03/27 DOTA
python实现的一个p2p文件传输实例
2014/06/04 Python
Python统计列表中的重复项出现的次数的方法
2014/08/18 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python如何生成网页验证码
2018/07/28 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
Python图像处理库PIL中图像格式转换的实现
2020/02/26 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
一套带答案的C++笔试题
2014/01/10 面试题
工作迟到检讨书
2014/02/21 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
办公室主任个人总结
2015/02/28 职场文书
值班管理制度范本
2015/08/06 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang
Android存储中最基本的文件存储方式
2022/04/30 Java/Android
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript