java - Eclipse 的 LogCat 被 Android 的 WAIT_FOR_CONCURRENT_GC 淹没

标签 java android garbage-collection

我正在编写一个小型 Android 游戏,每当我第一次运行时,一切都工作正常,但它会随机挂起并开始在 eclipse 的 LogCat 中无休止地发送垃圾邮件

12-30 12:40:05.344: D/dalvikvm(22831): WAIT_FOR_CONCURRENT_GC blocked 5ms 12-30 12:40:05.383: D/dalvikvm(22831): GC_CONCURRENT freed 511K, 34% free 2374K/3552K, paused 1ms+2ms, total 14ms

我知道这与垃圾收集有关,但每当我强制停止应用程序(关闭它的唯一方法)时,我会丢失大约 5-10mb 的可用内存,直到重新启动设备。有谁知道这意味着什么以及如何预防?

我使用的设备是运行 android 4.2.1(Cyanogenmod 10.1) 的 verizon Galaxy Nexus,sdk/target 版本为 3.2(api level 13)。谢谢!

最佳答案

您将能够通过 Google 找到更详细的描述,但基本上,这仅意味着您使垃圾收集器工作非常努力。

游戏编程与“普通”应用程序编程不同:您的游戏可能会循环无数次。 因此,即使是微小的内存泄漏也可能迅速发展成为真正的问题。

此外,GC通常是你最好的 friend ,在游戏中它几乎是你的敌人之一。每次 GC 运行都会产生一点卡住,因为它“停止了世界”。

我建议您继续搜索特定的游戏编程教程以及如何在其中对抗 GC。

关于java - Eclipse 的 LogCat 被 Android 的 WAIT_FOR_CONCURRENT_GC 淹没,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14093057/

相关文章:

android - 分隔符不适用于带有 viewpagerindicator 和 actionbarsherlock 的 TitlePageIndicator

android - 当我使用 'startActivity' 安装 apk 时如何获得结果代码

c# - 是否可以 Hook GC 收集的对象?

C#秒表类

c# - ID一次性和托管资源

java - 没有用于方案的文件系统:null

java - 在spring配置中创建具有不同属性值的类的多个bean实例

android - 根据 ACTION_SCREEN_OFF 和 ACTION_SCREEN_ON Intent 管理服务

java - 使用 YouTube 数据 API 获取更改/新视频

java - 获取包含的 jar 的 NoClassDefFoundError