1. 生命周期
Flex组件实例化的生命周期 (原文 )
2. 内存泄 露 ( 漏 )
1) 参考:
Garbage Collection and Memory Leaks
2) 简单小结:
a) 当 = 号左边是全局对象(stage、application、类的静态成员、单例等)时,需格外留意,引用完后及时去除引用,否则会导致=号右边对象无法被回收。
b) 当不再需要 listener 时要及时 remove,如果没有合适的remove时机,则增加监听时要用弱引用;另,自引用和子对象引用不会引起内存泄漏。
c) 无论无限次触发的 Timer 是否为全局对象,无限次触发的Timer本身以及注册在Timer中的监听器对象都不会被垃圾回收。
d) swf、图片、音频、视频对象不再需要时,要及时删除对象、引用置null。
3) 实践经验:
a) ChangeWatcher.watch 如果用强引用(默认值为true),如果不适时 unwatch 则会导致其所在实例对象无法被垃圾回收,进而可能也会引起其一系列父对象无法被垃圾回收。如果没有合适的unwatch时机,则可以改为用弱引用,则可被回收。
b) 子对象实例和父对象实例的回收没有必然联系,只要父对象已不具有对子对象的引用,则无论子对象是否已被回收、父对象均可被回收。
3. 性能优化
4. 其他