如何找到GC_FOR_MALLOC的来源?

时间:2011-06-15 09:34:54

标签: android garbage-collection

我正在开发一个安卓GC_FOR_MALLOC无限循环的Android应用程序:

06-15 11:24:56.685: DEBUG/dalvikvm(118): GC_FOR_MALLOC freed 4136 objects / 374744 bytes in 66ms
06-15 11:24:59.176: DEBUG/dalvikvm(521): GC_FOR_MALLOC freed 9340 objects / 524152 bytes in 645ms
06-15 11:24:59.846: DEBUG/dalvikvm(521): GC_FOR_MALLOC freed 9344 objects / 524328 bytes in 149ms
06-15 11:25:01.535: DEBUG/dalvikvm(521): GC_FOR_MALLOC freed 9346 objects / 524448 bytes in 193ms
06-15 11:25:02.175: DEBUG/dalvikvm(521): GC_FOR_MALLOC freed 9344 objects / 524344 bytes in 126ms

应用程序通过套接字(专用线程)读取一些jpeg图像并将其显示在imageView中。 GC循环使图像显示变得臃肿。

有没有一个解决方案可以知道什么行或至少代码的哪一部分抛出了垃圾收集?

由于

1 个答案:

答案 0 :(得分:2)

我不确定您是否可以访问VM并检查它一直在执行gc的原因,但gc通常在需要时执行。你应该检查一下是用了那么多内存。它可能正在加载你的图像(它是一个大图像吗?)或者它可能是你的应用程序中的其他东西。检查this post on how to analyse your memory usage,当您查看内存泄漏时。