有一个 Flash 应用程序在运行时使用了我数百 MB 的内存。是否有可能以某种方式手动清除此内存?
例如注入一些
System.gc()
成整体libflashplayer.so
?
有一个 Flash 应用程序在运行时使用了我数百 MB 的内存。是否有可能以某种方式手动清除此内存?
例如注入一些
System.gc()
成整体libflashplayer.so
?
GC 已经自行定期运行,所以如果 GC 没有为您释放内存,那么您的 Flash 应用程序有问题。
如果一个对象即使不再需要也没有被 GC,您应该手动检查代码,以便该对象应该释放所有事件侦听器。也许你忘记了删除一个TimerEvent.TIMER
监听器,或者其他地方的任何其他监听器。如果您打算不再使用该实例,请确保正确取消引用所有对象。这包括从您仍然需要的父对象的显示列表中删除您不再需要的对象(但不包括清空该对象的显示列表,就好像它会被取消引用一样,它的显示列表将不再算作有效嵌套对象的链接,以便它们也可以被收集),并删除所有没有useWeakReference
在从该对象及其所有内容添加时标志设置为 true(未弱引用的侦听器算作有效链接)。基本上,您应该始终完全控制将哪个侦听器附加到哪个对象,以及何时添加或删除侦听器。
不在调试模式之外。如果您在垃圾收集方面遇到严重问题,请查看此处的主题以及该主题中链接的文章: