谈谈ActionScript垃圾回收.docVIP

  • 0
  • 0
  • 约9.69千字
  • 约 13页
  • 2017-08-14 发布于河南
  • 举报
在《给AS程序员的一点建议一文》中我提到了释放资源的重要性。最近在一些项目过程中我又对这方面有了更多的理解,在此希望能够分享给大家。首先让我们来回顾一下关于垃圾回收(Garbage Collection,下文简称GC)的一些知识。要阅读本文,你需要对GC机制有些基本认识。 在ActionScript中,我们没有API可以直接删除一个对象,也不能控制Player进行GC。但是GC的行为是可以预估的,作为开发者,我们需要了解的是GC执行的时机是发生在需要向操作系统请求分配内存的时候。 ? ? ? ? 从上面的模拟图我们可以看到: Player以块的方式请求和释放内存。GC的结果不一定就是更少的内存占用,也有可能是从操作系统获得更多的可用内存。 Player会在某些GC过程中把内存中未使用部分组合成可以释放的块还给操作系统。 此外还要注意的是Player为了避免占用太多的CPU资源,会将一些GC操作分到不同的时间片中运行,所以一次GC过程并不一定清理完所有可回收资源。 一次GC过程(GC Pass)分为以下两个步骤: ? Reference Counting ? 统计所有对象的引用计数,如果某个对象没有任何引用,就标记为可回收。 ? ? ? 这个操作很好理解,需要强调的是weak reference(弱引用)是不参与计算的。引用计数是一个相对省CPU的操作,能够筛选出大部分可回收资

文档评论(0)

1亿VIP精品文档

相关文档