Gap*_*ton 3 memory android allocation
我已阅读 Android 的性能设计开发人员指南。
我只是想知道,如果我有一个大对象,我无法避免创建它(这很昂贵),当我知道我已经完成它时,我想立即释放它似乎是合乎逻辑的。
似乎没有办法做到这一点。
有人建议将其设置为null,这样系统就会立即GC,这真的是“立即”吗?因为如果系统(Dalvik VM)可以选择不释放我刚刚设置为 null 的大对象,那么将其设置为 null 根本不是解决方案。
将其设置为 null 会鼓励并加快 GC 的说法是否正确?
这种方法是优化应用程序性能的“足够好”的方法吗?或者是否值得付出额外的努力(如果可能的话),在适用的情况下强制 GC 以从任何 Android 设备中挤出最佳性能?
我认为您不必担心执行 GC 时的详细细节,因为我们无法控制何时调用 gc。即使调用 gc() 也不能保证收集。根据System.gc()的文档
向虚拟机表明现在是运行垃圾收集器的好时机。请注意,这只是一个提示。无法保证垃圾收集器实际上会运行。
在开发具有大对象分配的应用程序时,我会担心以下问题: