加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash – 在要对象的对象中设置对null的引用?

发布时间:2020-12-15 07:28:19 所属栏目:百科 来源:网络整理
导读:// in a garbage collected VM,destroy someObject:someObject.a = null;someObject.b = null;someObject = null; 我听说在像Java或C#这样的好的虚拟机中,你不应该这样做.将someObject的a和b设置为null将减慢垃圾收集速度,因为GC需要更长的时间才能发现之前
// in a garbage collected VM,destroy someObject:
someObject.a = null;
someObject.b = null;
someObject = null;

我听说在像Java或C#这样的好的虚拟机中,你不应该这样做.将someObject的a和b设置为null将减慢垃圾收集速度,因为GC需要更长的时间才能发现之前引用的对象a和b不再被引用,而如果保留它们完好无损,GC将在清理时立即检查它们someObject.

假设我听到的是真的(如果没有,请纠正我),AVM2,ActionScript 3 VM(特别是最新版本的Flash Player)是否相同?

我问的原因是我有一个同事这样做,因为他在前雇主那里学到了它更快,而Flash有很多这样的怪癖(我觉得很容易相信).

我只是想知道这些信息是否仍然是最新的(对于其他类似的Flash优化).根据我的经验,优化技巧在生活平台中相当快速地过时.

解决方法

我无法为您提供任何更快速的特定硬数据 – 设置为空或不.老实说,我不相信任何人会.

我能做的最好的事情是为您提供有关垃圾收集的一些信息,您可以从那里做出决定.

从Flash Player 9到Flash Player 10 Adob??e已经做了一些重大改进,特别是在内存管理方面.有几个’加载外部swf’的内存错误,未引用的声音粘在一起,等等大多数已被纠正.

Grant Skinner强调了GC用于确定应删除哪些对象的技术.看看这个优秀的演示文稿(有一些很酷的互动)如何工作http://gskinner.com/talks/resource-management/(但请注意演示文稿是关于FP9)

正如他所说,有参考计数和马克清扫.最终,AS3中的GC归结为参考.如果一个对象(非初始类型)具有对它的引用将不会被删除,但如果它没有被删除,即无法访问它,它将被标记为删除.但你无法控制删除实际发生的时间 – 可能是这个框架,可能是下一个框架.

最终,在我看来,“无效”每个变量/属性(参考或其他)都是浪费且非常难以处理的.对于较小的东西可能是实用的,但是当对象变得越来越大,有100个变量时,你不能一致地将所有变量都归零.

在轨道上,Flash Player只会针对正确的做事方式优化GC,而不是相反.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读