我的应用使用的RAM出现问题,因为它占用大量RAM。在诊断使用情况时,我震惊地看到超过一半的ram是一无所有或说免费分配的。.这是预览
因此,我想摆脱RAM上的负担,而这又是免费的。我用谷歌搜索,但我认为没有关于此问题的好帖子。
提前致谢 !
如果删除堆中的所有可用空间,则在下一个瞬间将发生OutOfMemoryError。
堆中的某些空间必须始终是空闲的,以便操作系统在您继续运行应用程序时可以用来分配内存。如果删除所有可用空间,则OS甚至无法为变量分配内存,并且由于OOM而导致应用程序崩溃。
与其尝试释放空白空间,不如将其移出“活动”时,应集中精力智能地释放已使用的空间。确保活动中没有剩余的悬挂引用,因为这会导致内存泄漏,并且堆大小会不断增加,直到系统无法分配更多资源并且应用程序崩溃为止。尝试删除对图像的引用,并删除对回调的所有侦听器(如果已设置)。基本上,尝试减少活动的内存占用。
理想状态是活动在销毁后立即释放其正在使用的所有空间。例如,您有一个14 MB的1字节数组,它基本上是存储在内存中的位图,因为您可能已经在某个地方留下了对其的引用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句