java - 需要 Android 堆按摩

标签 java android memory heap-memory

我正在尝试在我的应用程序中加载已保存的游戏。问题是,我不断遇到以下问题:

 06-01 00:42:36.123: ERROR/dalvikvm-heap(10297): Heap Massage needed (5107596-byte    
   external allocation too big)

 06-01 00:42:36.123: ERROR/dalvikvm-heap(10297): -->Full GC (don't collect 
       SoftReferences)

 06-01 00:42:36.163: ERROR/dalvikvm-heap(10297): -->Heap Massage was successful...

我想我知道为什么了。当前游戏(我想删除并忘记)仍然保留着内存。我想“解锁”此内存,那么有什么方法可以进行“堆转储”(使用引号是因为我是菜鸟,可能使用了错误的技术术语)?

最佳答案

一旦您消除了对当前游戏数据的所有引用(通过将所有相关变量、哈希条目等设置为 null),您可以调用 System.gc()(或 Runtime.getRuntime().gc())向 JVM 建议这是垃圾收集的好时机。但是请注意,您不能以这种方式强制进行垃圾回收。

关于java - 需要 Android 堆按摩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6190184/

相关文章:

java - 为什么我的 Mario Sprite(JComponent)没有出现?

java - 使用多个比较器多次对字符串列表进行排序

java.lang.NoClassDefFoundError : android. 媒体.ThumbnailUtils

android - 尝试为 pjsip android 生成 .so 文件时出现 fatal error : 'features.h' file not found #include <features. h>

c++ - 如何知道何时释放内存?

javascript - JavaScript 中的性能内存管理

c - linux 内核 - pte_xxx() API 在模块编程中不起作用

java - 如何在 testNG 类中使用 completableFuture

java - 使用 h2 和 spring boot 进行测试

android - 如何使用具有特殊字符(如 '+')的查询在 firebase 中进行搜索