你能告诉我 Dalvik 内存碎片是如何处理的吗?例如,如果我有一个应用程序分配一些小内存。但释放其中一些,然后尝试分配一大块。Dalvik 如何处理这样的请求,堆中的所有“漏洞”?
我需要帮助从 logcat 中理解这一点:
11-15 02:50:21.837 D/dalvikvm( 990): GC_BEFORE_OOM freed 16K, 40% free 9830K/16384K, paused 90ms, total 90ms
11-15 02:50:21.837 E/dalvikvm-heap( 990): Out of memory on a 5032864-byte allocation.
它说我的应用程序使用了 16384K 中的 9830K。而且我知道 16M 是最大堆大小,它不能再增长了。
但这应该使 6554K 空闲(16384k - 9830K)。为什么 dalvik 说“在 5032864 字节分配上内存不足。那是4914K,比我留下的要小。
谢谢你。