如何在ActionScript 3中强制从内存中卸载ByteArray?
我试过(没有成功):
byteArray.length = 0; byteArray = new ByteArray();
和
for ( var i:int=0; i < byteArray.length; i++ ) { byteArray[i] = null; }
解决方法
我不认为你有什么要担心的。如果System.totalMemory关闭,你可以放松。很可能是操作系统不回收新释放的内存(预计下一次Flash Player将要求更多内存)。尝试做其他非常内存密集型的事情,我确信你会注意到分配给Flash Player的内存将减少,并用于其他进程。
正如我所理解的,现代操作系统中的内存管理从分配给每个进程的金额,甚至分配的总金额的角度来看是不直观的。当我使用我的Mac 5分钟95%的我的3 GB RAM被使用,它会保持这种方式,它从来没有下降。这只是操作系统处理内存的方式。只要在其他地方不需要它,即使进程已经退出仍然有内存分配给他们(这可以使它们下次更快地启动,例如)。