当我们需要不停的创建和销毁对象时,对系统资源的消耗是很大的。同时如果垃圾回收器没有很好的运行时,这些已经不再被引用的对象占用的资源也不会被释放,我们会看到内存会持续的增长直到某一时刻触发垃圾回收器,同样垃圾回收的过程又是一个高消耗的动作。如果我们这时出现卡的现象,那就需要使用对象池了。
所谓对象池就是把暂时不用的对象缓存起来,等需要的时候再取出重用,这样就可以把避免创建和销毁这两个阶段的资源消耗了。根据平时的使用来看,在flash中,一般非显示对象不需要这么使用(除非是非常大量的创建),他们都能够很好的被回收,并且创建的消耗也很小,对占用内存和cpu影响很小。而对于显示对象,特别是容器中包含位图、播放的影片时,就要考虑是否需要使用对象池了,因为这样的创建的消耗是非常高的,同时也不能很好的被垃圾回收。当然也不是所有的显示对象都是这样,你需要做一下实验,不要得不偿失。
在codeTooth上可以找到一个简单的实现(ObjectPool)
所谓对象池就是把暂时不用的对象缓存起来,等需要的时候再取出重用,这样就可以把避免创建和销毁这两个阶段的资源消耗了。根据平时的使用来看,在flash中,一般非显示对象不需要这么使用(除非是非常大量的创建),他们都能够很好的被回收,并且创建的消耗也很小,对占用内存和cpu影响很小。而对于显示对象,特别是容器中包含位图、播放的影片时,就要考虑是否需要使用对象池了,因为这样的创建的消耗是非常高的,同时也不能很好的被垃圾回收。当然也不是所有的显示对象都是这样,你需要做一下实验,不要得不偿失。
在codeTooth上可以找到一个简单的实现(ObjectPool)