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 相关文章推荐
面向对象的Javascript之三(封装和信息隐藏)
Jan 27 Javascript
jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
Jun 27 Javascript
js中的scroll和offset 使用比较的实例与分析
Sep 29 Javascript
js创建元素(节点)示例
Jan 02 Javascript
Bootstrap实现响应式导航栏效果
Dec 28 Javascript
jQuery中使用animate自定义动画的方法
May 29 Javascript
基于jQuery实现仿百度首页选项卡切换效果
May 29 Javascript
解决vue接口数据赋值给data没有反应的问题
Aug 27 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
Nov 06 Javascript
React通过redux-persist持久化数据存储的方法示例
Feb 14 Javascript
实用的Vue开发技巧
May 30 Javascript
vue实现登录拦截
Jun 29 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 Mysql编程之高级技巧
2008/08/27 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
PHP实现一个按钮点击上传多个图片操作示例
2020/01/23 PHP
PHP中abstract(抽象)、final(最终)和static(静态)原理与用法详解
2020/06/05 PHP
javascript 避免闭包引发的问题
2009/03/17 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
jquery仅用6行代码实现滑动门效果
2015/09/07 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
React中使用collections时key的重要性详解
2017/08/07 Javascript
jQuery中图片展示插件highslide.js的简单dom
2018/04/22 jQuery
通过实例学习React中事件节流防抖
2019/06/17 Javascript
Node.JS获取GET,POST数据之queryString模块使用方法详解
2020/02/06 Javascript
详解JS预解析原理
2020/06/16 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
基于javascript原生判断DOM是否加载完毕
2020/10/14 Javascript
Python模拟百度登录实例详解
2016/01/20 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
六行python代码的爱心曲线详解
2019/05/17 Python
python 日志模块 日志等级设置失效的解决方案
2020/05/26 Python
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
美国钻石商店:Zales
2016/11/20 全球购物
德国网上花店:Valentins
2018/08/15 全球购物
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
扩大国家免疫规划实施方案
2014/03/21 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
PHP遍历数组的6种方式总结
2021/11/17 PHP
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS