垃圾回收机制Garbage Collection
假设系统内存占用情况如下:绿色表示空闲,蓝色表示已经占用。
512 bytes |
512 bytes |
512 bytes |
512 bytes |
512 bytes |
… |
512 bytes
|
512 bytes
|
512 bytes
|
512 bytes
|
512 bytes
|
…
|
obj=New object();
512 bytes |
512 bytes |
512 bytes |
512 bytes |
512 bytes |
… |
512 bytes
|
512 bytes
|
512 bytes
|
512 bytes
|
512 bytes
|
…
|
Obj=null;
512 bytes |
512 bytes |
512 bytes |
512 bytes |
512 bytes |
… |
512 bytes
|
512 bytes
|
512 bytes
|
512 bytes
|
512 bytes
|
…
|
红色代表内存还在占用。
Obj2=new Object();
512 bytes |
512 bytes |
512 bytes |
512 bytes |
512 bytes |
… |
512 bytes
|
512 bytes
|
512 bytes
|
512 bytes
|
512 bytes
|
…
|
内存溢出之前会去清理
512 bytes |
512 bytes |
512 bytes |
512 bytes |
512 bytes |
… |
GC is only triggered by allocations只有在再分配的时候才会触发垃圾回收机制。
You are generally only concerned about repeatable sequences
1. Popup dialogs coming and going
2. Modules loading and unloading
来看个例子:
Flex的实例都有最上的三层
Stage舞台
ApplicationDomain/Class definitions
Stack/Local Variables
例子的代码可以给我留言!
暂时的解决方法:其实不推荐这么用.
一般在flex中是直接会处理垃圾回收,只是不会立即执行,如果想立即执行只能如此:
//精髓,垃圾回收机强制调用
private function doClearance( ) : void {
trace("clear");
try{
new LocalConnection().connect("foo");
new LocalConnection().connect("foo");
}catch(error : Error){
}
}