Flex进阶持续学习
1. 生命周期
探究 Flex 组件的生命周期
Flex组件实例化的生命周期?? (原文)
?
2. 内存泄露(漏)
1) 参考:
Flex 应用内存泄露的分析与诊断
Flex内存泄露解决方法和内存释放优化原则
Flex 中可能导致内存泄露的地方
flex内存泄露几个注意的地方
Garbage Collection and Memory Leaks
More on Finding Memory
http://wiki.9ria.com/内存回收
?
2) 简单小结:
a) 当 = 号左边是全局对象(stage、application、类的静态成员、单例等)时,需格外留意,引用完后及时去除引用,否则会导致=号右边对象无法被回收。
b) 当不再需要 listener 时要及时 remove,如果没有合适的remove时机,则增加监听时要用弱引用;另,自引用和子对象引用不会引起内存泄漏。
c) 无论无限次触发的 Timer 是否为全局对象,无限次触发的Timer本身以及注册在Timer中的监听器对象都不会被垃圾回收。
d) swf、图片、音频、视频对象不再需要时,要及时删除对象、引用置null。
?
3) 实践经验:
a) ChangeWatcher.watch 如果用强引用(默认值为true),如果不适时 unwatch 则会导致其所在实例对象无法被垃圾回收,进而可能也会引起其一系列父对象无法被垃圾回收。如果没有合适的unwatch时机,则可以改为用弱引用,则可被回收。
b) 子对象实例和父对象实例的回收没有必然联系,只要父对象已不具有对子对象的引用,则无论子对象是否已被回收、父对象均可被回收。
?
3. 性能优化
详见:Flex进阶持续学习——性能优化
?
4. 其他
深入Flex4 -- 了解Element和Child的异同
?