码迷,mamicode.com
首页 > Web开发 > 详细

web中关于垃圾回收的一些观点

时间:2020-02-25 13:06:34      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:javascrip   child   拷贝   rip   关于   ref   增加   lis   文章   


感觉dom大神的解惑



关于引用计数法,注意引用的方向性就行。 A.addEventListner(B.func), 那么是增加了A对B的引用。如果A是不可回收的对象,比如全局的Stage,或者单例。那不移除就一定会导致B无法回收。如果A是可以回收的对象,那无所谓,这个引用无效。

A.addEventListner(B.func) ,对A本身没有影响。是A引用别人了,不是别人引用A。还是那句话,注意方向性。



A.addChild(B)也是同理。

倒霉的都是B



引用计数实际回收中其着重的情况很小,大部分是根节点遍历法起作用。主要就是看引用的方向性,一个对象反向追溯对它的所有引用,无法到达一个根节点就判定这个对象可以回收。根节点通常有stage,或者其他单例。也指一切确定无法回收的对象。




就是一个对象从任何方式你都再也无法访问到它,它就能被回收。

说的不是标记清除啊。v8的回收机制跟这 大专栏  web中关于垃圾回收的一些观点个根节点遍历法是一个原理。拷贝整块内存到新的地方。

访问不到的全都扔掉了。





就是从几个根节点开始遍历。被根引用的全都无法回收,进入新内存区。旧区域整个删除。根本不考虑循环引用还是什么情况,只要从根无法到达就扔掉。



大部分语言的垃圾回收器都实现了这两种机制:引用计数和根节点遍历,实际项目里的对象循环引用非常多,所以引用计数这种设计实际上一直都没怎么派上用场。大部分是根节点遍历法。V8更激进点,按照它的官方文档描述的话,就只有根节点遍历法。

web中关于垃圾回收的一些观点

标签:javascrip   child   拷贝   rip   关于   ref   增加   lis   文章   

原文地址:https://www.cnblogs.com/lijianming180/p/12360998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!