【问题标题】:Object creation tracking in Android DDMS, VM out of memoryAndroid DDMS 中的对象创建跟踪,VM 内存不足
【发布时间】:2011-03-01 19:03:37
【问题描述】:

嘿,我是 Android 新手,如果我错了,请纠正我: 我试图通过 DDMS 监控创建的对象数量和使用的堆(这显然取决于对象的数量)。 在此期间,如果我启动一个应用程序,我没有。创建的对象。按下后退按钮不一定会调用 onDestroy(),因此对象的数量仍将等于“n”。现在,当我再次启动应用程序时,将再次调用 onCreate() 并再次创建那些“n”个对象(现在对象总数将超过“n”个)。 那么,重复这个过程(重新启动应用程序)会导致对象数量不断增加吗? (这显然不应该发生)

【问题讨论】:

    标签: android memory-management ddms


    【解决方案1】:

    对象的数量会随着它们的创建而增加,然后随着垃圾收集器的运行而减少。

    如果即使使用垃圾回收,对象的数量仍继续增加,那么您可能存在内存泄漏。 “hprof”堆转储(何时可以通过单击 DDMS 中的按钮触发)可以帮助确定原因。

    【讨论】:

    • 感谢您的 Ans Sebastian,但我认为这不是我这边的内存泄漏。即使在 GC 之后(通过按下 'cause gc' 按钮触发)对象也在增加。即使使用示例“Hello Android”程序重复此过程,总数也不会。由于所谓的“数据对象”的增加,对象的数量正在增加。我猜这个“数据对象”与资源(或图像/位图)有关。这可能是 VM 内存不足异常的原因。在开发游戏时,由于没有大的。资源、图像、位图、数据对象的数量不断增加,导致内存不足。
    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2017-06-28
    • 1970-01-01
    • 2012-05-08
    相关资源
    最近更新 更多